nlattessi

Seminario_TP3_EJ01

May 9th, 2012
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 0.85 KB | None | 0 0
  1. Func. Auxiliar:
  2. (defun pertenece (atomo lista)
  3.     (if (null lista) nil
  4.         (if (eq atomo (car lista)) t
  5.             (pertenece atomo (cdr lista))
  6.         )
  7.     )
  8. )
  9.  
  10. a)
  11. (defun union (l1 l2)
  12.     (if (null l2) l1
  13.         (if (pertenece (car l2) l1)
  14.             (union l1 (cdr l2))
  15.             (union (append l1 (list (car l2))) (cdr l2))
  16.         )
  17.     )
  18. )
  19.                        
  20. b)
  21. (defun interseccion (l1 l2)
  22.     (if (null l1) nil
  23.         (if (pertenece (car l1) l2)
  24.             (cons (car l1) (interseccion (cdr l1) l2))
  25.             (interseccion (cdr l1) l2)
  26.         )
  27.     )
  28. )
  29.  
  30. c)
  31. (defun diferencia (l1 l2)
  32.     (defun limpio (num lista)
  33.         (if (null lista) nil
  34.             (if (eq num (car lista))
  35.                 (limpio num (cdr lista))
  36.                 (cons (car lista) (limpio num (cdr lista)))
  37.             )
  38.         )
  39.     )
  40.     (if (null l1) l2
  41.         (if (pertenece (car l1) l2)
  42.             (diferencia (cdr l1) (limpio (car l1) l2))
  43.             (append (list (car l1)) (diferencia (cdr l1) l2))          
  44.         )
  45.     )
  46. )
Advertisement
Add Comment
Please, Sign In to add comment