> A proper Lisp-2, based on the features and limitations of the Erlang VM What are limitations?
[] The macro handling can go part way to hide this.
71–80 of 96 posts
> A proper Lisp-2, based on the features and limitations of the Erlang VM What are limitations?
[] The macro handling can go part way to hide this.
> A proper Lisp-2, based on the features and limitations of the Erlang VM What are limitations?
[] The macro handling can go part way to hide this.
Earlier quoted context omitted.
In Erlang you need to have explicit number of arguments and need to explicitly implement them. Or, you know, just use lists as parameters. That's the standard Erlang pattern for unknown parameters lengths (e.g. io:format("debug ~s because ~p~n", [SomeString, SomeType]))
Firstly, this still requires a mechanism which underlies the [ ... ] notation for evaluating a sequence of any number of expressions and constructing a list. In Lisp dialects, that is done by a variadic function: (list 1 2 3 4 ...) Of course, if we don't need to indirect on this function, we could implement it as a macro (supposing further that we have variadic macros for compile time, but not variadic functions for…
One way to have made LFE fully variadic in its functions would have been to have made each function only take one argument which is a list of the arguments in the call. This would have been easy to do but made it very difficult to interface LFE with the rest of the Erlang system in a clean way.
I'd love to see a comparison with Clojure, anyone know of such a thing yet?
You can answer this from many angle: - Clojure vs LFE - JVM vs BEAM - Lisp-1 vs Lisp-2 Etc, if you are interested only in the syntax differences, there is not much difference there (there are obviously some though!). I think generally speaking Erlang has fewer libraries than Java so that is a big difference in my opinion.
* I am just going to ...
Earlier quoted context omitted.
Shame about luerl not supporting __metatable properly. That's half of why Lua is awesome. Still a massive achievement, awesome stuff.
Main issue is that luerl does support metatables. That caveat was written ago and I can't remember what it was I didn't support then. But as I said now it works.
I've got a lot of love for Lua(works great in embedded spaces, we use to do game logic in ~400kb block on a PSP with ~8mb of RAM).
Metatables are such an great way of exposing composability without putting a lot of restrictions on how the language works.
I do want to point out that LFE has been release ready and of production quality for a long time but I tend to suffer from a "Jag ska bara"* syndrome which has delayed things. :-) * I am just going to ...
Virding's YouTube presentation at a Clojure conference about this new lisp says this in the caption: >LFE (Lisp Flavoured Erlang) has been designed to run efficiently on the Erlang VM and at the same time be a "real lisp" providing Lisp's good bits. It also knocks Clojure a bit. What do you all think are the "good bits" of lisp that Clojure lacks?
Earlier quoted context omitted.
This is a feature to me more like a limitation. I do not like optional arguments &rest style. In Erlang you need to have explicit number of arguments and need to explicitly implement them. I really like that. Keep in mind that default values are trivial to implement when the smaller arity function calls the higher arity one with added values. Or you can call in yourself to the higher arity function and specify the pa…
I feel like it's OK not having rest args if you leave them out in order to support currying, but leaving both out seems really weird for a language that's trying to be functional.
(defmacro foo args
(do 'something (with args)))
where (and (>= (length args) 0)
(=
Note the lack of parentheses around args in the defmacro form.Edit: Oops, Robert mentioned this, too.
Earlier quoted context omitted.
The Lisp renaissance started in December 1999 with SBCL being forked from CMUCL.
Agreed. Well, with the date, anyway ;-) (though I am an SBCL user) Somewhere around 2000 we saw the end of AI winter. This most likely owes something to the fairly impressive Lisp marketing that PG did. Within a few years, several new Lisp books came out, and a few years after that we saw what the other poster mentioned: but not Just Clojure, a plethora of Lisps. To mention just a few: Clojure, Liskell, and LFE (LFE…
https://groups.google.com/forum/#!msg/comp.lang.lisp/CZX6uGN...
Then LispWorks was fully ported to Mac OS X (incl. Cocoa-based GUI and IDE) and there was then a replacement for Macintosh Common Lisp, which was given up and not ported to OSX/x86/Cocoa.