lfe travis-ci docker

Lisp Flavoured Erlang (LFE)

3 years after


Travis Hex.pm version Hex.pm downloads Hex.pm weekly downloads Hex.pm daily downloads

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.


To compile LFE, simple clone it and compile:

    $ git clone https://github.com/rvirding/lfe.git
    $ cd lfe
    $ make compile

LFE requires Erlang be installed on the system and that the erl binary is in $PATH.


Should you wish to have LFE available system-wide, you can run the following make target:

    $ make install

By default this will create the programs lfe, lfec and lfescript in the same directory as the erl program. This can changed by defining the make variable DESTBINDIR to point to the desired directory.

Note that the installation target will also install the LFE man pages in the appropriate /usr/local/man/man* directories. This can be changed by defining the make variable MANINSTDIR to point to the desired top man directory.


    $ make install DESTBINDIR=/Users/rv/bin MANINSTDIR=/Users/rv/man

will put the programs in /Users/rv/bin and the man pages in the /Users/rv/man/man* directories.


If you're running LFE from a git clone working dir, you can start the REPL like so after compiling:

    $ ./bin/lfe
    Erlang 17 (erts-6.0) [source] [64-bit] [smp:8:8] ...

    LFE Shell V6.0 (abort with ^G)

If you have installed LFE, then you may start the REPL from any location:

    $ lfe
    Erlang 17 (erts-6.0) [source] [64-bit] [smp:8:8] ...

    LFE Shell V6.0 (abort with ^G)

Likewise, you may run an LFE shell script in the same style as shell scripts with:

    $ ./bin/lfe script-name script-arg-1 ...


    $ lfe script-name script-arg-1 ...


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))
    > (* 2 (lists:foldl #'+/2 0 (lists:seq 1 6)))

Docker Support

LFE now supports Docker. To get started, simply do the following, once you have Docker set up on your machine:

$ docker pull lfex/lfe

Alternatively, you could build the image yourself:

$ cd lfe
$ docker build .

Here are a couple of simple usage examples:

$ docker run lfex/lfe

$ docker run -i -t lfex/lfe lfe
Erlang/OTP 18 [erts-7.0] [source-4d83b58] [64-bit] [smp:8:8] ...

LFE Shell V7.0 (abort with ^G)

That last command will dump you into the LFE REPL on a running container of the lfex/lfe Docker image. For more information on using Docker with LFE, be sure to read the tutorial.


Files with more technical details:

If you would like to make changes to the LFE documentation and then regenerate the docs, you'll want to read the instructions here:

Related Repositories



LFE-Clojure (JVM) Interop using JInterface. ...



The LFE Landing Site / Home Page ...



Casting SPELs in Lisp, the LFE Edition ...



Open LFE Platform ...



DEPRECATED - use lfe.github.io repo instead ...

Top Contributors

rvirding yurrriq oubiwann arpunk profitware mankyKitty tuncer skovsgaard hdurer purcell KlausTrainer redpine50 AeroNotix ahjones blt wuest mordocai dry hdiedrich JackDrogon norton josevalim cadar mattsta NobukazuHanada carlomarx wardbekker zkessin mopemope


-   v1.0 zip tar
-   v0.10.1 zip tar
-   v0.10.0 zip tar
-   v0.9.2 zip tar
-   v0.9.1 zip tar
-   v0.9.0 zip tar
-   v0.8 zip tar
-   v0.7a zip tar
-   v0.6.2 zip tar
-   v0.6.1 zip tar
-   v0.6 zip tar
-   v0.5.2 zip tar
-   v0.5.1 zip tar
-   v0.5 zip tar
-   v0.4 zip tar
-   v0.3 zip tar
-   v0.2.1 zip tar
-   1.0 zip tar
-   0.10.1 zip tar
-   0.10.0 zip tar
-   0.9.2 zip tar
-   0.9.1 zip tar
-   0.9.0 zip tar