Подтвердить что ты не робот

Какой язык F # создан для достижения?

Я все больше увеличил количество ресурсов для разработки приложений с использованием языка программирования F #, и на этот вопрос пришел вопрос о том, для чего был создан язык F #. Это сделано для конкретной платформы, например Desktop, Mobile Devices, Web Applications? Также он включил функции, недоступные на других языках программирования, которые в настоящее время доступны для разработки приложений .NET? Также возможно ли создавать приложения для настольных компьютеров, мобильных устройств и Интернета с помощью F #, поскольку мы можем использовать VB или С#? Также есть ли другие языки, подобные F #, которые я могу использовать для перекрестного контроля, чтобы лучше понять, как работает функциональное программирование?

4b9b3361

Ответ 1

Что такое язык F #, созданный для достичь?

Исследовательский проект F # стремился создать вариант языка OCaml, работающий поверх платформы .NET. Связанный с этим проект в MSR Cambridge, SML.NET, сделал то же самое для Standard ML. (OCaml и Standard ML - оба варианта языка ML). Мотивы для этого могли бы включать

  • Показывать это можно.
  • Публикация научных работ, показывающих это, может быть выполнена.
  • Потому что ML невероятно круто.

Это не должно отвлекать вас от того факта, что продукт F # является языком программирования общего назначения для платформы .NET. Преимущества F # распространяются на все домены. Могут быть пользователи, которые быстрее внедряют F # - часто упоминаются научные и финансовые программы, но настоящая причина в том, что эти организации более склонны к принятию новых технологий (небольшие команды, умные люди, немногие менеджеры).

Это сделано для конкретной платформы для пример Desktop, Mobile Devices, Web Приложения?

Нет.

Также он включил функции, а не доступно в других программах языки, которые в настоящее время доступны для разработки приложений .NET?

Да. К ним относятся:

  • Алгебраические типы данных
  • Соответствие шаблону
  • Тип вывода
  • Яркий синтаксис
  • Выражения последовательности
  • Асинхронные рабочие процессы
  • Единицы измерения

Также можно создать приложения для настольных компьютеров, мобильных устройств, и сети с использованием F #, поскольку мы можем использовать VB или С#?

Да, но инструмент в VS2010 является неполным. В частности, все, что связано с генерированием кода, плохо поддерживается, например. WPF-код и конструктор Winforms. Это не может быть проблемой на практике. Например, WPF с MVVM работает достаточно хорошо.

Также существуют другие языки к F #, который я могу использовать для перекрестной проверки против, чтобы лучше понять как работает функциональное программирование?

Да. Посмотрите на них:

  • Стандарт ML
  • OCaml
  • Haskell
  • Clojure

[Изменить: добавлен комментарий к оснастке в VS2010.]

Ответ 2

F # был создан для перевода функционального языка программирования в .NET.

Он не предназначен для какой-либо конкретной платформы. Согласно Microsoft Research, он "имеет особые преимущества в области программирования, ориентированного на данные, параллельное программирование ввода-вывода, параллельный процессор программирования, сценариев и алгоритмического развития". F # используется для финансовых и научных приложений, в частности.

С# был создан для Microsoft, чтобы иметь современный C-подобный язык, поскольку им было запрещено расширять Java, чтобы использовать Windows. Он был разработан как компонентно-ориентированный язык и никак не специализировался на Web.

F # - это прежде всего функциональный язык, тогда как С# и VB являются прежде всего объектно-ориентированными.

См. также:

Ответ 3

Я нашел несколько ресурсов, которые затронули мой вопрос:

Что и почему выбрать F #?

Как будет использоваться F #?

Девять причин использовать F #

Почему я должен использовать F #?

Когда имеет смысл использовать F # над С# или VB.NET

От того, как он выглядит, нет четкого ответа, как обычно при попытке определить использование определенного языка. Хотя я никогда не использовал функциональное программирование раньше, чем из некоторых примеров, которые я видел, это может быть чрезвычайно полезно. Это похоже на еще один отличный вариант при разработке приложений .NET.

Ответ 4

Если вы посмотрите это видео от Don Syme, возможно, вы получите некоторые ответы, которые вы ищете.

Обновление После просмотра видео казалось, что он создал его, потому что в то время (1998) ему не нравилась Java или то, что он видел на С#, но любил функциональное программирование, такое как OCaml. С тех пор как он работал в MS Research, он написал F #.

Я предполагаю, что генитация ряда языков, нацеленных на cli (A #, ronPython, IronRuby и т.д.), схожа.

Ответ 5

При попытке использовать идеи из функционального программирования, например, сосредоточиться на неизменности и оптимизации, которые могут исходить из этого, включая использование обратной рекурсии, вы обнаружите, что можно улучшить читаемость кода, улучшая ремонтопригодность.

Но, используя язык, такой как F #, упрощается выполнение языкового программирования (http://en.wikipedia.org/wiki/Language-oriented_programming), когда вы создаете специфические для домена языки, поэтому, например, вы можете написать небольшой язык для химика, где они используют термины, с которыми они знакомы для написания уравнений, или моделировать молекулы, и программа может анализировать это и реагировать с ожидаемым поведением.

Поскольку С# настолько объектно-ориентирован, это затрудняет использование языка так просто, как в F # вы можете пропустить '.' в вызовах методов, поэтому Jacob buys 100 shares of IBM, потому что серия вызовов функций.

Concurrency проще из-за некоторых конструкций, таких как ранее упомянутая неизменяемость, поэтому некоторые из функций, которые мы видим в F #, вероятно, помогут улучшить С#.

Таким образом, F # помогает MS попасть в такие области, как научное программирование и моделирование, поскольку для них это лучше, чем С#, из-за этих и других преимуществ от языка.

Но вы также можете использовать сборки .NET, и если вы хорошо напишете свой код, вы можете сделать математически интенсивные части в F # и использовать С# или VB.NET свои функции, поэтому мы можем использовать лучший язык для каждой задачи.

UPDATE:

После прочтения некоторых новых комментариев одна из проблем, с которыми столкнулась проблема, заключается в том, как написать хороший код, который использует преимущества многоядерных процессоров. Таким образом, функциональное программирование стало более популярным, как видно из F #, Scala, Clojure, назвав всего несколько, поэтому MS пошла на это, чтобы помочь программистам лучше использовать новые архитектуры чипов.