Make sure you've
cded into your new LFE project directory, and then do this:
$ rebar3 lfe repl
This should give you something that looks like the following:
Erlang/OTP 23 [erts-11.0.2] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [hipe] [dtrace] ..-~.~_~---.. ( \\ ) | A Lisp-2+ on the Erlang VM |`-.._/_\\_.-': | Type (help) for usage info. | g |_ \ | | n | | | Docs: http://docs.lfe.io/ | a / / | Source: http://github.com/rvirding/lfe \ l |_/ | \ r / | LFE v1.3-dev (abort with ^G) `-E___.-' lfe>
Try setting a variable:
> (set my-list (lists:seq 1 6)) (1 2 3 4 5 6)
Here are some operations using more functions from the built-in Erlang
> (* 2 (lists:sum my-list)) 42 > (* 2 (lists:foldl (lambda (n acc) (+ n acc)) 0 my-list)) 42
Let's turn that into a function:
> (defun my-sum (start stop) (let ((my-list (lists:seq start stop))) (* 2 (lists:foldl (lambda (n acc) (+ n acc)) 0 my-list)))) my-sum
And try it out!
> (my-sum 1 6) 42
Enough with the fancy REPL-play ... What about some real code? What does a project look like?