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