nlattessi

Seminario_TP3_EJ03

May 9th, 2012
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 0.82 KB | None | 0 0
  1. (defun listar_alumn_todas_mat (l)
  2.  
  3.     (defun existe (a l)
  4.         (if (null l) nil
  5.             (if (string= a (car l)) t
  6.                 (existe a (cdr l))
  7.             )
  8.         )
  9.     )
  10.    
  11.     (defun guardoMat (l l2)
  12.         (if (null (cdr l)) l2
  13.             (if (existe (cadr l) l2) (guardoMat (cdr l) l2)
  14.                 (guardoMat (cdr l) (append l2 (list (cadr l))))
  15.             )
  16.         )
  17.     )
  18.     (defun listaMat (l &optional (salida nil))
  19.         (if (null l) salida
  20.             (listaMat (cdr l) (guardoMat (car l) salida))
  21.         )
  22.     )
  23.    
  24.     (defun alumnMat (l materia)
  25.         (if (null l) nil
  26.             (if (existe materia (car l))
  27.                 (append (list (caar l)) (alumnMat (cdr l) materia))
  28.                 (alumnMat (cdr l) materia)
  29.             )
  30.         )
  31.     )
  32.     (defun alumnTodasMat (l mats)
  33.         (if (null mats) nil
  34.             (append (list (cons (car mats) (list (alumnMat l (car mats)))))
  35.                 (alumnTodasMat l (cdr mats)))
  36.         )
  37.     )  
  38.  
  39.     (alumnTodasMat l (listaMat l))
  40. )
Advertisement
Add Comment
Please, Sign In to add comment