|
|
|
|
|
by i_s
3621 days ago
|
|
As a Clojure fan, I tried using this, but I got the impression it has learned next to nothing from Clojure, so I ended up going with Elixir instead. Particularly: - No data structure literals (?) - (except e.g., '(1 2 3) for lists) - Manual module exports, instead of just having 2 versions of def - Other small syntactic annoyances, like plain parens everywhere, instead of brackets in some cases like Clojure, and atoms (like keywords in clojure) started with "'" rather than ":" |
|
I'd guess that the manual module exports are a design decision inherited from Erlang, where you specify exported functions with the -export() macro.
As for the rest of the syntax; it appears (to me, at least) that LFE doesn't deviate terribly much from traditional Lisp syntax, while still being transparent about the underlying Erlang data types being used. Clojure took the opportunity to introduce a more opinionated Lispy syntax. This really boils down to personal preference.
All in all, I think that the various design decisions of LFE and Clojure make a lot more sense when you consider their respective host languages/VMs.