[erlang-questions] LFE - Lisp Flavoured Erlang released

Yariv Sadan yarivsadan@REDACTED
Thu Mar 6 08:58:43 CET 2008


Hi, I think I found a bug in lfe_eval.

I created the following macro:

(define-syntax bar
  (macro
   ((vals)
    (: lists map (lambda (x) (: io format '"~p~n" x)) vals) ())))

and the following function:

(define (foo)
  (bar (1 2 3)))

When I call '(foo)' I get the following error:

** exception error: lfe_eval:'-eval_lambda/2-fun-0-'/2 called with one argument
     in function  lists:map/2
     in call from lfe_eval:eval_body/2
     in call from lfe_macro:macro/3
     in call from lfe_macro:expand_tail/3
     in call from lfe_macro:expand/2
     in call from lfe_macro:expand_top_forms/2
     in call from lfe_macro:expand_top_forms/2
     in call from lfe_macro:expand_file/2

Also, can you please explain the difference between 'macro' and
'syntax-rules'? 'macro' seems to do what I expect and I'm not sure
when syntax-rules would be a better option.

Thanks,
Yariv

2008/3/1 Robert Virding <rvirding@REDACTED>:
> I have finally released LFE, Lisp Flavoured Erlang, which is a lisp syntax
> front-end to the Erlang compiler. Code produced with it is compatible with
> "normal" Erlang code. The is an LFE-mode for Emacs and the lfe-mode.el file
> is include in the distribution. Most things seem to work but some things
> have not been done yet:
>
>  - The interpreter does handle recursive letrecs, binaries, receive or try.
>  - There is no lisp shell.
> - Documentation!
>
>  Yet. The system will be updated as new features are added. This is the 1st
> release so there is much left to do.
>
> I have include the existing documentation lfe_guide.txt in this mail. There
> are a number of LFE test files and a version of the LFE interpreter written
> in LFE as examples of code. There are also a number of issues which need to
> be decided for the next version and I have included a file lfe_issues.txt
> which describe them in this mail. Both files are in the distribution.
>
> Note that while this this lisp has been inspired by Scheme (one of the
> issues) it is a NOT Scheme, it is Erlang with a lisp syntax and many nice
> lisp features. Not for that matter is it Common Lisp. In fact features of
> the Erlang engine mean that it is actually impossible to implement full
> Scheme of CL. No, they shouldn't be changed or added.
>
> It was quite writing Erlang code in lisp and I could easily consider using a
> lisp syntax for Erlang. I suppose it depends where your preferences lye. It
> was also easy to get into the traditional lisp habit of using long names for
> everything which I personally think is not a Good Thing. Perhaps we should
> do AFE, Arc Flavoured Erlang, instead? Although I think they have gone too
> far and missed what makes programs easy to read.
>
> Macros are very nice, and it is easy to generate LFE code, which is one of
> the benefits of lisp syntax.
>
> LFE also shows that it would probably be possible to write other front-ends
> inspired by other languages, though why anyone should want to I don't know.
> Perhaps back to a real Prolog syntax again.
>
> The system can be found in the "User Contributions" section at trapexit.org,
> http://forum.trapexit.org/viewtopic.php?p=40268#40268.
>
>
> _______________________________________________
>  erlang-questions mailing list
>  erlang-questions@REDACTED
>  http://www.erlang.org/mailman/listinfo/erlang-questions
>



More information about the erlang-questions mailing list