[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
%nil once again
From: |
Daniel Kraft |
Subject: |
%nil once again |
Date: |
Thu, 16 Jul 2009 15:47:54 +0200 |
User-agent: |
Thunderbird 2.0.0.0 (X11/20070425) |
Hi,
I think I got the test-suite as well as a basic macro implementation
(the compiler framework is really cool, that was fairly easy to do);
recursive macros do not yet work, but otherwise it looks fine.
However, I want to tackle quasi-quotes (besides others) now; and in
Elisp %nil is not only #f of Scheme but also the end-of-list marker (I
guess that's why simply using Scheme's #f for %nil does not work).
I did some experiments, and it seems that Scheme respects it partially:
scheme@(guile-user)> `(1 2 3 . ,%nil)
(1 2 3)
(is %nil in Scheme a variable because it needs the unquote?)
However:
scheme@(guile-user)> (null? %nil)
#f
scheme@(guile-user)> (equal? %nil (cdr (list 1)))
#f
It would be cool to teach Guile somehow to treat %nil as the "standard"
end-of-list value, such that both of these queries would optimally
return true. At least, is there some way to construct lists terminated
by %nil using something like the list primitive? Other things needed
would be for instance terminating rest-arguments by %nil rather than '()
and the like.
So: How is this handled by the interpreter? Is there maybe some
runtime-option to make Guile use %nil as end-of-list for lists
constructed? Or could we introduce some means to do so?
If that's not a good idea because of performance or other
considerations, I guess I'll have to implement some conversion routine
and use that? This on the other hand will probably hit Elisp's performance.
Any suggestions and ideas welcome! Maybe I just fail to see something...
Thanks,
Daniel
--
Done: Arc-Bar-Cav-Ran-Rog-Sam-Tou-Val-Wiz
To go: Hea-Kni-Mon-Pri
- %nil once again,
Daniel Kraft <=
- Re: %nil once again, Neil Jerram, 2009/07/17
- Re: %nil once again, Daniel Kraft, 2009/07/17
- Re: %nil once again, Andreas Rottmann, 2009/07/17
- Re: %nil once again, Neil Jerram, 2009/07/19
- Re: %nil once again, Daniel Kraft, 2009/07/19
- Re: %nil once again, Neil Jerram, 2009/07/19
- Re: %nil once again, Ken Raeburn, 2009/07/19
- Re: %nil once again, Daniel Kraft, 2009/07/20
- Re: %nil once again, Ken Raeburn, 2009/07/20
- Re: %nil once again, Andy Wingo, 2009/07/23