Significant differences between F# and Clojure
Solution 1
Most of the differences will stem from the fact that F# is descended from ML while clojure is descended from lisp.
So F# has a more ML/OCaml/Haskell feel with emphasis on:
- static typing
- type inference
- pattern matching
While clojure has more of a Lisp feel with emphasis on:
- s-expressions
- macros
- closures
Also as Brian noted, F# is a .Net language while clojure is a JVM language so each will have access to a vast but different set of libraries.
Solution 2
Clojure is a lisp, actualy lisp-1 family language. F# is practicaly OCaml adopted to .net platform.
Solution 3
It looks like there's some effort being put into running Clojure on the CLR. Looks very promising.
http://github.com/richhickey/clojure-clr
Solution 4
One key difference is that F# is a .NET language, whereas Clojure runs on a JVM. Thus the deployments and supported platforms will be different.
Note that F# is supported by mono, however.
As for macros, I think you're out of luck.
Solution 5
They are both functional first programming languages, but their type systems are very different. F# is a strongly typed language and Clojure is a dynamically typed language and so
- Boumbles' answer to What is the Difference between Strong vs. Static Typing AND Weak vs. Dynamic Typing;
- haylem's answer to Dynamically vs Statically typed languages studies; or
- Joey Adams's question What is better for prototyping: a statically-typed language, or a dynamically-typed one?
may help answer "what are the most significant differences between the F# and Clojure?". Note however that the debate between "static typing" and "dynamic typing" is a long running one and so can appear religious.
Admin
Updated on June 07, 2022Comments
-
Admin almost 2 years
What are the most significant differences between the F# and Clojure ?
Which constructs has F# which Clojure does not have and vice versa?
Does F# have macros?