LFE, Lisp Flavoured Erlang, is a lisp syntax front-end to the Erlang compiler. Code produced with it is compatible with "normal" Erlang code. An LFE evaluator and shell is also included.
LFE installation isn't recommended. Instead, one should:
- use lfetool to create projects (which will automatically have LFE as a dependency when it creates skeleton libraries, OTP apps, etc.; or
- use LFE directly in a working dir, e.g.:
$ git clone https://github.com/rvirding/lfe.git
$ cd lfe
$ make compile
If you really do want to install LFE system-wide, you can do so like this:
$ git clone https://github.com/rvirding/lfe.git
$ cd lfe
$ git checkout develop
$ export ERL_LIBS=`erl -noshell -eval \
'io:format("~s~n", [code:lib_dir()])' -s init stop`
$ make compile
$ make install
If you have used lfetool
to set up your project, you can simply do this to
start a REPL:
$ make shell
Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [smp:8:8] ...
LFE Shell V5.10.4 (abort with ^G)
>
Note that this will recompile all the deps (often useful for projects with
changing dependencies). If you would prefer to only recompile code for the
project itself, you can use make shell-no-deps
instead.
If you're running LFE from a git clone working dir, you can start the REPL like so:
$ ./bin/lfe -pa ./ebin
Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [smp:8:8] ...
LFE Shell V5.10.4 (abort with ^G)
>
The docs site has several places to explore that will show you how to start using LFE. However, here's a quick taste:
- start up an LFE REPL as demonstrated above
- then, do something like this:
> (* 2 (+ 1 2 3 4 5 6))
42
> (: lists foldl (lambda (n acc) (+ n acc)) 0 (: lists seq 1 6))
42
- "classic" user guide
- version history
Files with more technical details: