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

Значительные различия между F # и Clojure

Каковы наиболее существенные различия между F # и Clojure?

Какие конструкции имеют F #, которые Clojure не имеют и наоборот?

Есть ли у F # макросы?

4b9b3361

Ответ 1

Большая часть различий будет связана с тем, что F # происходит от ML, а clojure происходит от lisp.

Таким образом, F # имеет более ML/OCaml/Haskell с акцентом на:

  • статическая типизация
  • вывод типа
  • соответствие шаблону

В то время как clojure имеет больше Lisp с акцентом на:

  • S-выражений
  • макросы
  • закрытие

Также, как отметил Брайан, F # является языком .Net, а clojure - это язык JVM, поэтому каждый из них будет иметь доступ к огромному, но другому набору библиотек.

Ответ 2

Clojure является lisp, актуальным lisp -1 семейным языком. F # практичен OCaml, принятый для платформы .net.

Ответ 3

Одно из ключевых отличий заключается в том, что F # является языком .NET, тогда как Clojure работает на JVM. Таким образом, развертывания и поддерживаемые платформы будут разными.

Обратите внимание, что F # поддерживается моно, однако.

Что касается макросов, я думаю, вам не повезло.

Ответ 5

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

может помочь ответить "каковы наиболее существенные различия между F # и Clojure?". Обратите внимание, однако, что дискуссия между "статической типизацией" и "динамической типизацией" является долговременной, и поэтому может показаться религиозной.

Ответ 6

F # действительно соответствует Scala на JVM. Ближайшей вещью к Clojure на платформе .NET является IronScheme.

Ответ 7

Если вы хотите использовать макросы, вы можете использовать его с Boo или Nemerle.