Very good summary Jorg. It seems to me that end tests handled the same way by most implementations. The CLtL2 example is not very good as the result (> i 11) is still NIL for (= i 11). A better one would be: (loop for i from 1 to 10 thereis (>= i 11) finally (print i)) ; 11 => NIL For this all implementations I mentioned before print 11 and returns NIL. Also, CLISP 2.49.60+ (2017-06-25) works the same way as the others. bg On Thu, Nov 23, 2017 at 10:58 AM, "Jörg Höhle" hoehle@users.sf.net wrote:...
Hi Sam, Indeed the standard does not mention explicitly the usage of iteration variables in the epilogue. However, I found these in cltl2 https://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html indicating that they should be available: on page 788: (loop for i from 1 to 10 thereis (> i 11) finally (print i)) 11 => NIL on page 806: ;;; The FINALLY clause prints the last value of I. ;;; The collected value is returned. (loop for i from 1 to 10 when (> i 5) collect i finally (print i)) 11 => (6 7 8 9...
loop on list incompatibility