Lisp types are C++ classes derived from a base class.

'$' (which is a valid name in recent(ish) C/C++) is a variadic template that constructs a proper Lisp list using an overloaded function to convert (some) C++ types to Lisp types.

'eval' is implemented more or less how you'd expect. There's also a 'read' in more idiomatic C++ so it'll run actual scripts.

I plan to do a writeup on this once I'm done(ish).

ยท Web ยท 1 ยท 1 ยท 2
Sign in to participate in the conversation
Mastodon for Tech Folks

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!