(defun test-case(a)
(case a
((1 3 5 7) 'alfa)
(2 'beta)
((a b c) 'letra)
(otherwise 'omega)))
(loop
(print "Hola amigos!"))
(defun saludos()
(print "Hola amigos!")
(saludos))
; ¿te gustan las mates?
(mapcar #'sqrt '(1 2 3 4 5 6 7 8 9 10 -10))
Esta es la respuesta:
( 1.0 1.4142135 1.7320508 2.0 2.236068 2.4494898 2.6457512 2.828427 3.0
3.1622777 #C(0.0 3.1622777))
; incrementar un 3%
(mapcar #'(lambda(x) (* 1.03 x)) '( 1 2 3 4 5 6 7 8 9 10))
; -> (1.03 2.06 3.09 4.12 5.1499996 6.18 7.21 8.24 9.2699995 10.299999)
; obtener el número natural que introduce el usuario:
(defun obtener-número-natural()
(print "Introduzca un número natural, mayor o igual que cero:")
(let ((número (read)))
(if (or (not (numberp número))
(not (>= número 0)))
; Cuando lo introducido no es un número o no es un número mayor que cero.
(obtener-número-natural)
número)))
(defun obtener-número-entero()
(format t "~A" "Introduzca un número entero:")
(let ((número (read)))
(if (or (not (numberp número))
(not (integerp número)))
(obtener-número-entero)
número)))
(defun area-poligono(&key (lados 3) (radio nil) (lado nil))
(if radio
(* 0.5 lados pi radio radio (sin (/ (* 2 pi) lados)))
(* 0.25 lados lado lado (tan (/ (* 0.5 pi (- lados 2)) lados)))))
(area-poligono :lados 3 :lado 4.5) ;-> 8.77
(area-poligono :lados 4 :lado 4.5) ;-> 20.25
(area-poligono :lados 5 :lado 4.5) ;-> 34.84
(area-poligono :radio 4.5) ;-> 82.62
(area-poligono :lado 4.5) ;-> 8.77
(area-poligono :lados 10 :lado 4.5) ;-> 155.81
(area-poligono :lados 100 :radio 4.5) ;-> 199.72
(area-poligono :lados 1000 :radio 4.5);-> 199.85
(area-poligono :lados 1000 :lado 4.5);-> 1611438.49
(loop repeat 30 collect (list (random 100)))
proporciona:
((92) (44) (95) (5) (97) (58) (43) (99) (37) (68) (26) (95) (16) (89) (33) (17)
(51) (55) (42) (82) (24) (89) (92) (59) (92) (13) (49) (46) (7) (45))
Esta organización es útil cuando se desean realizar comparaciones de igualdad con los elementos de la lista mediante eq.