Side note but it is sad as hell that arguments.callee is gone (in esm, a long with arguments in general), which was such an excellent way for functions to take whatever bindings it has & turn them into accessors. I miss like hell the JS world where functions could easily show off some internals.
function add(a) {
return a + arguments.callee.amount
}
add.amount = 2
console.log(add(2)) // => 4
(In this simple eread-only example arguments.callee could be be replaced with add, but if one is doing inline function definitions or other cases that's not possible.)
And that was something devs explicitly had to do in their libraries! But in guile there's some automatic capability to expose your bindings.
> Guile programs can use first-class accessors on the module systems to pull out bindings.
In general, I strongly feel like the ability for the language to let developers explore the bindings is like "the" missing piece of programming language systems, is one of the primary gates to good metaprogramming ever emerging. I wish the runtime would be observable.
Is it me, or was there an attempt to inject words that rhyme with hoot in every sentence?
But more to the point, I absolutely love how well Hoot works, I've been playing with it for the last month and plan on doing the next Lisp game jam with it.
Hoot looks awesome, but I've yet to get past the initial hurdle of screwing around with guix. Frankly, I need another package manager like I need a hole in the head.
It really needs someone to give other package managers some love (Homebrew, apt, rpm...)
And that was something devs explicitly had to do in their libraries! But in guile there's some automatic capability to expose your bindings.
> Guile programs can use first-class accessors on the module systems to pull out bindings.
In general, I strongly feel like the ability for the language to let developers explore the bindings is like "the" missing piece of programming language systems, is one of the primary gates to good metaprogramming ever emerging. I wish the runtime would be observable.