I'm reading an example of code that use apply built-in..but a step isn't clear to me:
ps. this function take a compress list as ((3 1) 0 1 (4 0) 1)) and return (1 1 1 0 1 0 0 0 0 1)
Code: Select all
(defun uncompress (lst)
(if (null lst)
nil
(let ((elt (car lst))
(rest (uncompress (cdr lst))))
(if (consp elt)
(append (apply #' list_of elt)
rest)
(cons elt rest)))))
(defun list_of (n elt)
(if (zerop n)
nil
(cons elt (list_of (- n 1) elt))))
thanks again in advance!!
ps. sorry for wrong inidentation in the first defun (the second if belongs to let declaration), in preview works, but not when printed....(???)