Hacker News new | ask | show | jobs
by xyzzyz 5053 days ago
I found one bug: you cannot create a zero argument lambda, e.g. (lambda () 42) will not work. You could also benefit from separate `let' construct, because simulating them with lambdas is a bit painful.

Apart from that, it works quite nicely (I was positively surprised you went for lexical scoping), but without macros, you can hardly say it's a Lisp, it's a language with Lispy syntax.

2 comments

> You could also benefit from separate `let' construct, because simulating them with lambdas is a bit painful.

> without macros, you can hardly say it's a Lisp, it's a language with Lispy syntax.

These two things go together: many lisps have let as a macro that uses lambda internally.

> I was positively surprised you went for lexical scoping

Indeed; that makes for a much more usable language.

Yep, this is still very much a work in progress. Metacircular eval and macros are up next.