;build-list si muzete naprogramovat obdobne, jako ve Scheme (jenom se misto letrec pouzije labels...) (defun build-list (len fun) (labels ((build-list-helper (i) (unless (= i len) (cons (funcall fun i) (build-list-helper (+ i 1)))))) (build-list-helper 0))) ;nebo pomoci dotimes a setf (probrane na prvni prednasce) (defun build-list (len fun) (let (result) (dotimes (i len) (setf result (cons (funcall fun i) result))) (reverse result))) ;elegantnejsi reseni nabizi loop (neprobira se ale v kurzu): (defun build-list (len fun) (loop for i from 0 below len collect (funcall fun i)))