Ralph Schleicher <
rs+usenet@ralph-schleicher.de> writes:
Axel Reichert <mail@axel-reichert.de> writes:
(iter (for i to 2)
(for matches = (count i (list 2 1 2)))
(print matches))
a strange compilation error:
Iterate, in (COUNT I #1=(LIST 2 1 2)):
#1# should be a symbol
Smells like a bug. You should report it to the maintainers.
In
https://gitlab.common-lisp.net/iterate/iterate/-/blob/master/iterate.lisp
I could find the suspicious
(defparameter *deprecated-clause-names* '((count . counting)))
and some line further down (reformatted here) the explanation:
(format stream "~s appears to be used as an ITERATE clause keyword, in
this sexpression: ~S. ~ This use is now deprecated and will cease to
be ~ supported in a future version. ~@[Please use the alternative
keyword ~s instead.~] If you intended ~2:*~s to ~ be interpreted as a
function call, instead of an ITERATE clause, you must find an
alternative way of calling it, ~ at present, perhaps by using FUNCALL
or APPLY." keyword clause substitute keyword)
My iterate.lisp is older and does not yet contain (and thus not issue)
this warning. As for your workaround: You nailed it!
For the record: It was a known issue, see
https://gitlab.common-lisp.net/iterate/iterate/-/issues/1
For your help: Thanks!
Axel ...
P. S.: ... who has meanwhile used functions returning functions, which
made the code much smaller and got rid of lots of "iter" forms
alongside.
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)