[pro] Lisp 2's and function values.
Pascal Costanza
pc at p-cos.net
Thu May 26 16:35:09 UTC 2011
On 26 May 2011, at 02:07, Matthew D. Swank wrote:
> On 05/25/2011 04:05 PM, Alessio Stalla wrote:
>> It's not about syntax, it's about a missing feature: the ability to
>> bind a symbol's function "cell" to a value that's not known at compile
>> time.
> I've used this for pedagogical purposes:
> (defmacro f-let ((&rest bindings) &body body)
> (let* ((let-bindings (mapcar (lambda (binding)
> (list (gensym) (cadr binding)))
> bindings))
> (flet-bindings (mapcar (lambda (binding let-binding)
> `(,(car binding) (&rest args)
> (apply ,(car let-binding) args)))
> bindings
> let-bindings)))
> `(let ,let-bindings
> (flet ,flet-bindings
> , at body))))
>
> but it hardly solves the problem.
Why does it not solve the problem? Your definition shows that adding such a feature is just a matter of defining a macro, so it's more or less at the same level of adding a looping construct - it doesn't increase the expressiveness of the language (in the sense of Felleisen's macro-expressiveness).
So, what "problem" do you have in mind here?
Pascal
--
Pascal Costanza
The views expressed in this email are my own, and not those of my employer.
More information about the pro
mailing list