Ale cyklus je speciálním případem rekurze. :-) Rekurzivní zápis je koncept (stejně jako třeba dynamické programování), nikoli implementace nějakým zásobníkem. :-) Fold je v SRFI-1 zcela určitě tail-rekurzivní, přinejmenším jeho referenční implementace poskytovaná se specifikací. Iota sice consuje, ale pak taky můžu použít SRFI-42 (early comprehensions) a zasat to jako (product-ec (:range i 1 (+ n 1)) i). ;-)
(Ale já jako starý commonlispový prase bych to napsal jako (iter (for i from 1 to 10) (accumulate i by #'* initial-value 1)). :-DDD)