Parámetros de palabras clave en LISP

La lista de parámetros de la función LISP tiene como objetivo básico declarar las variables que recibirán los argumentos que se pasan en la función. Normalmente, la lista de parámetros contiene una lista básica de nombres de variables, esos parámetros se denominan «parámetros requeridos». Si se llama a una función, para cada parámetro requerido se debe proporcionar un argumento individual, si se llama con más o menos argumentos, LISP mostrará un error.

Tipos de parámetros en la lista de parámetros

  • Parámetros requeridos
  • Parámetros opcionales
  • Parámetros de descanso
  • Parámetros de palabras clave

Parámetros de palabras clave:

Los parámetros de palabras clave se utilizan cuando queremos pasar un valor específico a un parámetro específico. Considere un escenario donde hay 3 parámetros opcionales, qué pasa si el usuario quiere pasar solo el valor de un segundo parámetro opcional, aquí el primer parámetro, aunque es opcional, será obligatorio para él pasar su valor convirtiéndolo en un parámetro requerido, para resolver Los parámetros de palabras clave de este problema se utilizan donde la persona que llama tiene la opción de especificar qué valor se especificará para qué parámetro en particular.

La sintaxis para definir parámetros de palabras clave:

Para definir parámetros de palabras clave en una función, agregue el símbolo &clave antes de cualquier parámetro que se supone que debe establecerse como parámetros de palabras clave.
Para ilustrar esto, mira el siguiente código: 

(defun keyword_example (&key x y z)...)

Aquí xyz son especificadores de parámetros de palabras clave.

Ejemplo:

Ahora vamos a crear una función que solo tenga parámetros de palabras clave y también establezca sus valores predeterminados en algunos valores predefinidos.

(defun keyword_example (&key (x 5) (y 7) (z (+ x y)))...)

En esta función llamada » ejemplo_palabra clave » tenemos 3 parámetros de palabras clave. 
Además de eso, hemos establecido valores predeterminados para todos esos parámetros como x -> 5, para y -> 7, y para z le estamos dando el valor de la suma de x e y

Ahora, con fines ilustrativos, en el cuerpo de esta función, crearemos una lista que contendrá nuestros parámetros.

(list x y z)

Llamemos a esta función teniendo varias llamadas con diferentes valores para cada parámetro.

Código: 

Lisp

(defun keyword_example (&key (x 5) (y 7) (z (+ x y)))
  (list x y z))
  
(write(keyword_example 😡 1))      
(terpri)    
(write(keyword_example :y 1) )         
(terpri)    
(write(keyword_example :y 1 :z 4) )    
(terpri)    
(write(keyword_example :y 1 :z 4 😡 2 ))

Producción: 

(1 7 8)
(5 1 6)
(5 1 4)
(2 1 4)

Aquí, en la primera llamada, simplemente pasamos el valor de x especificando su valor con el símbolo 😡 , para las llamadas de funciones posteriores, establecemos valores para diferentes parámetros específicamente. Además, no hay necesidad de pasar los argumentos en un orden específico, ya que estamos usando especificadores de palabras clave (consulte la cuarta llamada de función), por lo tanto, con los parámetros de palabras clave, pudimos dar un parámetro específico, es un valor específico.

Publicación traducida automáticamente

Artículo escrito por aniruddhashriwant y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *