Abdulaziz Ghuloum wrote:
Currently, Ikarus allows you to attach arbitrary values to identifiers
at expansion time, but it does not allow you to do that and at the same
time have the identifier be usable as a variable/macro. I have not
finalized my thoughts about this, but it's coming any-time-now.
Do you know of any other implementations allow this?
This sounds really cool... they're basically the old-school
"property lists" for the 21st century.
Anywho, with the feature you describe above, and the existing
'make-compile-time-value', it seems that's all I'd need to make a
bona-fide 'smart-curry' (and friends). Well, assuming that 'define'
started to annotate procedure bound symbols (which doesn't sound bad).
Of course, I like portable code so the next step would be to talk to
other implementors about it, see if we can develop a defacto standard,
go SRFIng, and then standardize it.
Man, with this sort of thing, the sky's the limit... Type annotations in
lambda parameter lists also come into reach...
(lambda ( (x int) (y int) )
(abc x y))
The endowed 'lambda' annotates 'x' and 'y' with the type info. 'abc'
expands and takes advantage of the type info; 'abc' might be a "generic"
from an object system which dispatches based on type. Etc...
Ed