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?
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?
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:
While clojure has more of a Lisp feel with emphasis on:
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.
Clojure is a lisp, actualy lisp-1 family language. F# is practicaly OCaml adopted to .net platform.
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.
It looks like there's some effort being put into running Clojure on the CLR. Looks very promising.
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
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.
F# really corresponds to Scala on JVM. The closest thing to Clojure on .NET platform is IronScheme.