Por el momento estoy trabajando con "Practical Common Lisp" de Peter Seibel.LISP: parámetros de palabras clave, suministrado-p
En el capítulo "Práctica: Una simple base de datos" (http://www.gigamonkeys.com/book/practical-a-simple-database.html) Seibel explica los parámetros de palabras clave y el uso de un parámetro suministrado con el siguiente ejemplo:
(defun foo (&key a (b 20) (c 30 c-p)) (list a b c c-p))
Resultados:
(foo :a 1 :b 2 :c 3) ==> (1 2 3 T)
(foo :c 3 :b 2 :a 1) ==> (1 2 3 T)
(foo :a 1 :c 3) ==> (1 20 3 T)
(foo) ==> (NIL 20 30 NIL)
Entonces, si uso la clave & al comienzo de mi lista de parámetros, tengo la posibilidad de usar una lista de 3 parámetros nombre, valor predeterminado y la tercera si el parámetro ha sido suministrado o no. De acuerdo. Pero mirar el código en el ejemplo anterior:
(list a b c c-p)
¿Cómo sabe el intérprete Lisp que c-p es mi "parámetro suministrado"?
Aaah lo consiguió :-) c-p simplemente se agrega a la lista como a, byc y no es un "parámetro proporcionado" para "se ha establecido/desconectado una lista". Lleva cierto tiempo acostumbrarse a la sintaxis, aunque es realmente fácil. :-) ¡Gracias! – echox