[Bese-devel] Changes II
Marco Baringer
mb at bese.it
Tue Aug 9 16:00:42 UTC 2005
Friedrich Dominicus <frido at q-software-solutions.de> writes:
> Well as written before I'm trying to get ucw working for me. I was a
> bit successfull with that around a week or so ago. But now all the
> things start tumbling down. So what has changes in the action
> handling?
pardon me for breaking your app :(
what has happened is that we've moved from a macro transformer to an
interpreter and the work still isn't quite finished.
atm actions have the following, temporary, limitation: you can't pass
a function generated in the action (a form like #'(lambda ...)) to a
function which wasn't generated by defun/cc. basically this won't
work:
(mapcar (lambda ...) ...)
nor anything similar.
the reason is that the interpreter, when it sees a lambda form,
doesn't generate a function object but generates a cps-closure
object. this cps-closure object can contain call/cc (unlike the old
cps-transformer) but you need to have a definition of mapcar (or just
map in your case) which knows how to deal with cps-closure objects.
i'm currently (as we speak) cut 'n pasting code from sacla to
implement most of the common higher order common-lisp function
(mapXYZ, removeXYZ, etc.) in order to fix your code you will to
refactor the action so that the (lambda ...) form is in a second
function defined outside of the action and you only pass non-function
objects to that second function.
--
-Marco
Ring the bells that still can ring.
Forget the perfect offering.
There is a crack in everything.
That's how the light gets in.
-Leonard Cohen
More information about the bese-devel
mailing list