Значительные различия между F # и Clojure
Каковы наиболее существенные различия между F # и Clojure?
Какие конструкции имеют F #, которые Clojure не имеют и наоборот?
Есть ли у F # макросы?
Ответы
Ответ 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 # поддерживается моно, однако.
Что касается макросов, я думаю, вам не повезло.
Ответ 4
Похоже, что в CLR запущено Clojure несколько усилий. Выглядит очень многообещающе.
http://github.com/richhickey/clojure-clr
Ответ 5
Они оба функциональные сначала языки программирования, но их системы типов очень разные. F # - строго типизированный язык, а Clojure - динамически типизированный язык и поэтому
может помочь ответить "каковы наиболее существенные различия между F # и Clojure?". Обратите внимание, однако, что дискуссия между "статической типизацией" и "динамической типизацией" является долговременной, и поэтому может показаться религиозной.
Ответ 6
F # действительно соответствует Scala на JVM. Ближайшей вещью к Clojure на платформе .NET является IronScheme.
Ответ 7
Если вы хотите использовать макросы, вы можете использовать его с Boo или Nemerle.