From: Sam S. <sd...@gn...> - 2010-10-18 21:24:50
|
Hi Kaz, I think this might be of interest to other clisp users, so please reply to clisp-list On Mon, Oct 18, 2010 at 2:18 AM, Kaz Kylheku <ka...@ky...> wrote: > P.S. I found some issues too! CLISP's loop had let me get away with this > syntax: > > loop for <subclause> and for <subclause> > ^^^ > This is not apparently allowed by the standard grammar. What is joined by > and are subclauses which do not begin with the for or as keyword! clisp/tests/loop.tst: ;; According to the BNF syntax, "and" must not be followed by "for". But ;; ANSI CL section 6.1.1.5.1 contains ambiguous wording, and this example ;; appears in CLtL2 p. 743, we keep it. (loop for numlist in '((1 2 4.0) (5 6 8.3) (8 9 10.4)) for a integer = (first numlist) and for b integer = (second numlist) and for c float = (third numlist) collect (list c b a)) #-(or CMU SBCL) ((4.0 2 1) (8.3 6 5) (10.4 9 8)) #+(or CMU SBCL) ERROR > Secondly, in CLISP I had relied on being able to do (loop for x [other > clauses]) which will cause X to count from 0. In the CLHS grammar, it's > clear that this abbreviation is not supported; you need that "from 0". Take > a look at 6.1.2.1.1: ``At least one of the prepositions must be used''. The > starting value does default to 0, of course. indeed, clisp appears to accept (loop for x do (print x)) https://sourceforge.net/tracker/?func=detail&aid=3089988&group_id=1355&atid=101355 -- Sam Steingold <http://sds.podval.org> |