|
|
|
|
|
by squiddev
3026 days ago
|
|
Urn effectively tries to be it's own language which sits on top of the Lua runtime. I've tried to take the nicest bits of Lua and combine it with macros and a little more compile-time checking. Though I'm not entirely sure how successful I've been... Urn was is very much an experimental project for me: part of me wanted to see how much I could do with as little syntax. Consequently Urn has comparatively few "special forms", but meaning it generates less idiomatic Lua. Fennel is much more an alternative syntax to Lua. Most Lua constructs have a corresponding Fennel form, meaning the generated code looks more "like Lua". Lua interop is also much nicer: Urn requires you to declare all variables, so you have to jump through hoops to use external libraries. With Fennel you can just go ahead like you would with Lua. |
|
I've toyed around with ideas related to your project. Such as: What if... you had a Lisp that instead of being based around the classic linked list, was based around the Lua table instead?
I've briefly tried to come up with formulations for how the code itself should be represented as a series of nested tables.
And perhaps have a series of nested tables for all variables in the runtime as well (including local ones), though Lua sort of does this now.
All that would increase ease the introspection, creation of macros, and other fun stuff. I hadn't started deciding on a syntax or anything either.