F # на Linux, без опыта .NET - PullRequest
       6

F # на Linux, без опыта .NET

6 голосов
/ 29 января 2011

С сентября я играю с Clojure, функциональным языком шуток в JVM. Я использовал это в нескольких небольших хобби-проектах. Язык очень лаконичен, прост, но я пришел к выводу, что s-выражения на самом деле не для меня.

Существуют и другие функциональные языки, такие как Scala, Haskell, OCaml и т. Д., Но, похоже, они являются скорее академическими языками.

В последнее время я рассматриваю изучение F # в свободное время. У меня есть пара вопросов:

  • Я в основном пользователь Linux. Я беспокоюсь, что Моно может отставать.
  • В основном я занимаюсь веб-разработкой на динамическом языке, которым я доволен. Я бы использовал F # для некоторых хобби-приложений с графическим интерфейсом или простых игр. Есть ли хорошая поддержка для обоих? Можно ли использовать Mono / F #, например, на устройствах Iphone или Android?

Когда я изучал Clojure, у меня был небольшой опыт работы с Java. Это не оказалось большой проблемой. Взаимодействие с Java было очень простым, и Java как язык также довольно прост, поэтому у меня не было проблем с чтением документации.

  • Является ли взаимодействие с F # достаточно простым, и отсутствие знаний .NET / C # создает трудности при использовании внешних библиотек?
  • Наконец, какие ресурсы / книги были бы достаточны для изучения F # (некоторый функциональный опыт, нет .NET / C #)

Спасибо

Ответы [ 3 ]

9 голосов
/ 29 января 2011

Был достигнут большой прогресс в том, чтобы заставить F # работать хорошо на Mac и Linux:

  • В ноябре 2010 года команда F # объявила о выпуске исходного кода F # с открытым исходным кодом (Apache). Команда Mono планирует интегрировать ее в следующую версию Mono (см. блог Мигеля де Иказы ).

  • Люди из Mono уже начали работать над интеграцией, и у них есть версия с Make-файлами в стиле Mono, которую вы можете получить и собрать из Github . Если вы не хотите создавать F # самостоятельно, вы также можете использовать созданный сообществом пакет Max / Linux, доступный здесь .

  • Я создал интеграцию F # для MonoDevelop , которая дает вам довольно хороший пользовательский опыт (включая подсказки с информацией о типе, проверку типа фона и завершение).

Что касается взаимодействия - F # работает очень хорошо на Mono и, в принципе, должно работать везде, где работает Mono (я ожидаю, что Android должен работать, но я не пробовал). Он не будет работать на iPhone (хотя C # работает), потому что в этой версии Mono довольно много ограничений.

1 голос
/ 29 января 2011

Mono достаточно хорош, если вы не пытаетесь прокатиться по кровоточащей кромке волны обмана.F # хорошо работает с ним.

.NET-взаимодействие с C-подобными API, использующими PInvoke, не сложно использовать.Требуется некоторое время, если вы связываете огромный API, сложно.

Я считаю, что Mono имеет некоторую поддержку iPhone и не знает о поддержке Android.Но я не работаю с мобильным программированием, поэтому возьмите это с крошкой соли.

Для книг мой личный фаворит - F # для ученых Джона Харропа.Он охватывает достаточно материала, чтобы быть интересным, даже если вы не увлекаетесь научными вычислениями, и он очень хорошо написан.

0 голосов
/ 29 января 2011

В Ubuntu, по крайней мере, вы захотите скомпилировать Mono 2.8.2 и F # самостоятельно.

У меня есть Эксперт F # 2.0 , и это тоже хорошо, но я обнаружил, что авторы всех других книг активны в переполнении стека!

Пока чтоНа самом деле, я использовал гораздо меньше C # / .NET с F #, чем я должен был использовать Java с Clojure.

F # сейчас очень много собора, но это довольно ...

...