3 ms·
I prefer LFE (Lisp Flavored Erlang) because I prefer Lisp syntax to the Ruby-like Elixir syntax. LFE compiles down to core Erlang, while Elixir compiles down to
by eggy 9y ago
I prefer LFE (Lisp Flavored Erlang) because I prefer Lisp syntax to the Ruby-like Elixir syntax. LFE compiles down to core Erlang, while Elixir compiles down to vanilla Erlang. True macros can be done in LFE, but as I understand it, macros are done after parsing in Elixir. LFE was created by one of Erlang's co-creators.
- christophilus 9y agoI'm curious to hear what you've built with LFE, and what the experience was like? What would you say were the biggest stumbling blocks you ran into? I'm also in your camp (not liking Elixir or Erlang's syntax, but really liking BEAM). I like Clojure a whole lot, but would prefer it on BEAM for a whole variety of reasons. LFE seemed like a step back from Clojure in many ways when I looked at it.
- nunb 9y agoPerhaps the 'step back' is that LFE is a Lisp-2 like Common Lisp whereas Clojure is a Lisp-1 like Scheme. You might find Joxa interesting, it predates Elixir, but came after LFE and is patterned on Clojure. http://joxa.org http://joxa.org
- weatherlight 9y agoum.. this is incorrect. Elixir Source Code -> -> Elixir Macro Expansion -> Erlang Abstract Format --> Core Erlang --> BEAM bytecode Erlang does something very similar. Erlang Source Code -> Erlang Abstract Format --> Core Erlang --> BEAM bytecode I'm pretty sure that LFE doesn't skip the Erlang Abstract Format step
- pmarreck 9y agoIt's fine to be a fan of LFE, but not so fine to spread misinformation about Elixir macros. Macros in Elixir are "true" compile-time macros... They take the AST as an argument, and are expected to return an AST. Possibly the first, or one of the first, implementations of "true" macros in a non-homoiconic language, which was previously a strong selling point of homoiconic (Lisplike, syntax-less) languages.