Funciones en LISP

Una función es un conjunto de declaraciones que toma alguna entrada, realiza algunas tareas y produce el resultado. A través de funciones, podemos dividir una gran tarea en muchas funciones más pequeñas. También ayudan a evitar la repetición de código, ya que podemos llamar a la misma función para diferentes entradas.

Definición de funciones en LISP: 

Las funciones en LISP se definen usando la macro DEFUN . La sintaxis básica se ve así: 

(defun function-name (parameters)
  "Documentation string"
  body-of-function
)
  • Nombre de la función: puede usar cualquier tipo de símbolo como nombre de función, pero generalmente los nombres de función incluyen solo caracteres y guiones. En LISP, en lugar de utilizar guiones bajos en la denominación, los guiones se consideran convenciones de nomenclatura. Por ejemplo, escribimos calc-average en lugar de calc_average o calcAverage .
  • Parámetros: estas son las variables que se utilizan para retener los argumentos que se pasan a la función cuando se llama. Estos parámetros son opcionales, si una función no tiene ningún parámetro, entonces esa lista está vacía escrita como ( ) 
  • String de documentación: es un literal de string que se utiliza para describir lo que se pretende que haga una función en particular.
  • Cuerpo de la función: El cuerpo de la función consta de expresiones LISP que se evalúan en orden cuando se llama a la función. Por lo general, el valor de la última expresión se devuelve como el valor de la función, pero con la ayuda de RETURN-FORM, que es un operador especial, podemos devolver el valor de la función desde cualquier parte de ella.

Ejemplo:

1. Vamos a crear una función llamada hello-world que no tome ningún parámetro y devuelva una string hello world.

Lisp

(defun hello-world () 
  (format t "Hello, World!")
)
(hello-world)

Producción:

Hello, World!

2. Función para sumar dos enteros

Aquí hemos creado una función llamada add-two-number que toma dos argumentos n1 y n2 . Se utiliza una string de documentación para describir el trabajo realizado por esta función y cualquiera que sea el valor devuelto llamando al + eventualmente se convierte en el valor devuelto de sumar dos números.

Lisp

(defun add-two-number (n1 n2)
  "Adds two numbers"
  (+ n1 n2)
)
(write(add-two-number 10 20))

Producción:

30

3. Ahora vamos a crear una función simple que tome un argumento de string opcional y devuelva la string de bienvenida: 

En la función welcome-to-gfg , tenemos un nombre de parámetro opcional. Para definir cualquier parámetro opcional agregue el símbolo: &opcional antes del nombre del parámetro que es opcional.
Hemos establecido su valor predeterminado en Sandeep , por lo que si el usuario llama a la función bienvenido a gfg sin ningún argumento, imprime «Bienvenido «Sandeep» a Geeks for geeks». o si se pasa algún argumento al llamar a la función, devolverá la string que contiene el valor del argumento pasado al llamar a la función.
(terpri) se utiliza para imprimir una nueva línea

Lisp

(defun welcome-to-gfg (&optional (name "Sandeep"))
  (format t "Welcome ~S to Geeks for geeks!" name)
)
(welcome-to-gfg)
(terpri)
(welcome-to-gfg "UserName")

Producción: 

Welcome "Sandeep" to Geeks for geeks!
Welcome "UserName" to Geeks for geeks!

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 *