Hi Alex,

After you made me aware of the circular list in lib/form.l, I changed my 'ifwarn' function to skip circular lists by putting in the (nT (length Prg)) test, like this:

(de ifwarn (Prg)
        (when (and (lst? Prg) (nT (length Prg)))
                (when (and (= (car Prg) 'if) (<> (length Prg) 4))
                        (println Prg) )
                (mapcar ifwarn Prg)
                NIL) )

However, this fix may not be the ultimate, because in lib/misc.l there's a tougher problem, that can be illustrated by this ...

(length '(de *Day . (Mon Tue Wed Thu Fri Sat Sun .)))

.. which I'm not able to abort with Ctrl-C or Ctrl-D. Ctrl-Z does it.

Why does 'length' have such problems here?


Reply via email to