Funciones de mapeo en LISP

En este artículo, discutiremos las funciones de mapeo en lisp. Las funciones de mapeo se aplican en la estructura de datos de la lista para combinar una o más listas de elementos. Al usar esto podemos realizar operaciones matemáticas y podemos unir los elementos.

La principal ventaja de esta función es que podemos combinar dos o más listas con diferentes tamaños.

también podemos usar estas funciones en nuestras funciones definidas por el usuario

Sintaxis :

mapcar operation list1 list2 ..........list n

dónde,

  • mapcar es la palabra clave para mapear las listas
  • la operación se utiliza para realizar dos o más listas
  • las listas son las listas de entrada que se mapearán

Ejemplo 1: programa Lisp para mapear la lista agregando 1 a todos los números en la lista.

Lisp

;add the number 1 to all the numbers in the list and
;display
(write (mapcar '1+  '(1 2 3 4 5)))

Producción:

(2 3 4 5 6)

Ejemplo 2: Realice la elevación al cuadrado y al cubo de números

Lisp

;function to square all the elements by mapping the elements
(
defun squaredata(data)
   (mapcar #'(lambda(i) (* i i )) data)
)
 
; function to cube all the elements by mapping the elements
(
defun cubedata(data)
   (mapcar #'(lambda(i) (* i i i )) data)
)
 
;call the square function
(write (squaredata '(1 2 3 4 5)))
 
;call the cube function
(write (cubedata '(1 2 3 4 5)))

Producción:

(1 4 9 16 25)(1 8 27 64 125)

Ejemplo 3: Programa para mapear dos listas realizando operaciones aritméticas

Lisp

;map lists by performing addition
(write (mapcar '+ '(1 2 3 4 5) '( 5 7 8 3 2)))
 
(terpri)
 
;map lists by performing subtraction
(write (mapcar '- '(1 2 3 4 5) '( 5 7 8 3 2)))
 
(terpri)
 
;map lists by performing multiplication
(write (mapcar '* '(1 2 3 4 5) '( 5 7 8 3 2)))
 
(terpri)
 
;map lists by performing division
(write (mapcar '/ '(1 2 3 4 5) '( 5 7 8 3 2)))
 
(terpri)

Producción:

(6 9 11 7 7)
(-4 -5 -5 1 3)
(5 14 24 12 10)
(1/5 2/7 3/8 4/3 5/2)

Publicación traducida automáticamente

Artículo escrito por saisravanprojects 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 *