Comment

Comment by miloignis

Very neat! I had not looked into Bel before, but I feel like I need to now. Some aspects of it look pretty close to John Shutt's Kernel language, where the core construct is Vau instead of Lambda, and creates something quite like the mac macro construct described for Bel, receiving its arguments unevaluated along with an optional parameter which is the calling environment, I think like the described "scope" variable. It also provides wrap/unwrap functions which wrap a Vau in a layer of parameter-evaluation, so a normal lambda would look like (wrap (vau #unused_env (parameters..) body...) and macros and functions (and builtins like if, lambda, etc!) all unify into one concept which he calls combiners.

It's cool to see some convergent evolution vaguely towards this direction, I think it's very beautiful. I also agree, I think a language like this that's purely functional would be a great boon and make these advanced features easier to reason about! I've been working on something similar I'll share when it actually works - looks like there are dozens of us!

parent miloignis 4 years ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton