(let defun (mac (name args body) (list let name nil) (list = name (list fun args body)))) (defun square (x) (* x x)) (let inc (mac (s) (list (q =) s (list (q +) s 1)))) (defun to-upper (str) (capture-upper (print str))) (defun to-lower (str) (capture-lower (print str))) (defun last (x) (if (cdr x) (last (cdr x)) (car x))) (defun del-last (x) (if (cdr (cdr x)) (del-last (cdr x)) (setcdr x nil))) (defun nth (a n) (if (is n 0) (car a) (nth (cdr a) (- n 1))))