(ps (symbol-macrolet ((fake real)) (fake 123)))
=>
"fake(123);"
It's not supposed to, at least according to Common Lisp. I don't know what the exact rationale behind that is, but I suspect it has something to do with the fact that you can do the same thing with regular macros, and allowing this would be like crossing the function and symbol/variable namespaces.
Vladimir
2009/10/30 Daniel Gackle danielgackle@gmail.com:
(ps (symbol-macrolet ((fake real)) (fake 123)))
=>
"fake(123);"
parenscript-devel mailing list parenscript-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel
Well, the Common Lisp equivalent would be
(symbol-macrolet ((fake #'real)) (funcall fake 123))
... which does work. But in PS there's only one namespace, of course, so it seems like the form I quoted is the natural equivalent of this one. No?
On Sun, Nov 1, 2009 at 11:22 AM, Vladimir Sedach vsedach@gmail.com wrote:
It's not supposed to, at least according to Common Lisp. I don't know what the exact rationale behind that is, but I suspect it has something to do with the fact that you can do the same thing with regular macros, and allowing this would be like crossing the function and symbol/variable namespaces.
Vladimir
2009/10/30 Daniel Gackle danielgackle@gmail.com:
(ps (symbol-macrolet ((fake real)) (fake 123)))
=>
"fake(123);"
parenscript-devel mailing list parenscript-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel
parenscript-devel mailing list parenscript-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel
In some sense, yes. In another one, that would be PS code that does not run in CL.
2009/11/1 Daniel Gackle danielgackle@gmail.com:
Well, the Common Lisp equivalent would be
(symbol-macrolet ((fake #'real)) (funcall fake 123))
... which does work. But in PS there's only one namespace, of course, so it seems like the form I quoted is the natural equivalent of this one. No?
On Sun, Nov 1, 2009 at 11:22 AM, Vladimir Sedach vsedach@gmail.com wrote:
It's not supposed to, at least according to Common Lisp. I don't know what the exact rationale behind that is, but I suspect it has something to do with the fact that you can do the same thing with regular macros, and allowing this would be like crossing the function and symbol/variable namespaces.
Vladimir
2009/10/30 Daniel Gackle danielgackle@gmail.com:
(ps (symbol-macrolet ((fake real)) (fake 123)))
=>
"fake(123);"
parenscript-devel mailing list parenscript-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel
parenscript-devel mailing list parenscript-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel
parenscript-devel mailing list parenscript-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel
parenscript-devel@common-lisp.net