((((a b) (c d)) (e f)) (g h))
E
obtido com caadar
D
obtido com cadadaar
((G H))
obtida com cdr
O valor como dado de um símbolo é usado quando o símbolo aparece sozinho ou na posição de argumento de uma lista a ser avaliada. O valor como função é usado quando o símbolo aparece na posição funcional (primeira poção) de uma lista a ser avaliada.
Para modificar o valor como dado, usa-se SETF
.
Para mudar o valor como função, usa-se
DEFUN
.
(defun conta (sexo lista) (cond ( (null lista) 0 ) ( (equal sexo (caar lista)) (+ (cadar lista) (conta (cdr lista)) ) ) (t (conta sexo (cdr lista))) ) )
(defun caixas (expr) (if (atom expr) 0 (+ 1 (caixas (car expr)) (caixas (cdr expr)) ) ) )
by JM