(defparameter *todo* '("Conquer the world" "Bake cake"))
(defun how-many-items (list)
if (list
(1+ (how-many-items (cdr list)))
0))
(defun add-item (item)
(cons item *todo*)) ; Attempt to add an item to the todo list
(princ (how-many-items *todo*))
(princ '#\newline)
(add-item "Write a book")
(princ (how-many-items *todo*))
(princ '#\newline)
(princ (cdr *todo*))
(princ '#\newline)
私はまだLispを学んでいますが、リストに「本を書く」という項目を追加すると思われるリストのサイズが追加されない理由を理解できません.cdr呼び出しは「Bake Cake」を返し、項目の数はいつも二人。
出力は次のとおりです。
2
2
(Bake cake)