3 ms·
This is a neat project which makes the λ-calculus more accessible. The λ-calculus is incredibly useful for designing and analyzing language features, but it can
by tikhonj 11y ago
This is a neat project which makes the λ-calculus more accessible. The λ-calculus is incredibly useful for designing and analyzing language features, but it can be a bit of a pain to work with in part because it quickly becomes verbose. Papers and proofs usually end up developing their own shorthand, but that tends to be rather ad-hoc and is rarely implemented programmatically.
In my view, this makes this project a great platform for playing around with language design. It should be reasonably easy to take the existing base and extend it with additional features (exceptions, continuations) or types. I've long suggested writing a handful of λ-calculus interpreters, from untyped to simply typed to System F to dependent types as a great way to thoroughly learn programming language concepts; Caramel gives you a great starting place for this coupled with an accessible, readable syntax.
Also, it would be great to see an online version of this, perhaps compiled with GHCJS. I've played around with trylambda[1] which is fun, but the lack of syntax quickly gets in the way. Caramel would be a great alternative.
[1]: https://trylambda.com/ https://trylambda.com/
- arethuza 11y agoI can remember filling page upon page of paper completing worked examples by hand on the CS course I did - oddly enough these labourious exercises actually made me really interested in λ-calculus and the related SK combinators. I think it actually takes some effort with these things to realise that they really are that simple and yet so powerful.