Сравнить студентов, используя функцию COND - Lisp

Формулировка задачи:

доброе время суток срочно нужно решить две задчаи - с лабораторной все решила кроме последних двух и голова вообще уже не варит ( буду признательная любой помощи итого, последние две задачки: 20. Используя функцию COND, напишите функцию, которая спрашивает у пользователя ФИО двух студентов из группы (список группы составлен раньше) для которых: а) сравнивает год рождения и выдает результат (кто старше или что они ровесники); б) сравнивает средний бал и выдает сообщение о результатах сравнения; с) проверяет родственные связи (если одни и те же родители, то они родственники) и выдает об этом сообщение. люди помогите

Код к задаче: «Сравнить студентов, используя функцию COND - Lisp»

textual
(defun task (fio1 fio2)   
  (let ((y1 (get fio1 'god))
        (y2 (get fio2 'god)) 
        (b1 (get fio1 'ball))
        (b2 (get fio2 'ball))
        (m1 (get fio1 'mama))
        (m2 (get fio2 'mama)) 
        (p1 (get fio1 'papa))
        (p2 (get fio2 'papa)))
   (cond ((> y1 y2) (prin1 fio1) (prin1 " старше ") (prin1 fio2) (terpri)) 
         ((= y1 y2) (prin1 fio1) (prin1 " и ") (prin1 fio2) (prin1 " - ровесники") (terpri))
         (t (prin1 fio2) (prin2 " старше ") (prin1 fio1) (terpri)))
   (cond ((> b1 b2) (prin1 "у ") (prin1 fio1) (prin1 " средний балл выше, чем у ") (prin1 fio2) (terpri)) 
         ((= y1 y2) (prin1 "у ") (prin1 fio1) (prin1 " и ") (prin1 fio2) (prin1 " средние баллы равны") (terpri))
         (t (prin1 "у ") (prin1 fio2) (prin1 " средний балл выше, чем у ") (prin1 fio1) (terpri)))   
   (cond ((and (eq m1 m2) (eq p1 p2)) (prin1 fio1) (prin1 " и ") (prin1 fio2) (prin1 " - родственники") (terpri))
         (t (prin1 fio1) (prin1 " и ") (prin1 fio2) (prin1 " - не  родственники") (terpri)))))
TASK
 
CL-USER 24 > (task 'chernov 'urivskii)
CHERNOV" и "URIVSKII" - ровесники"
"у "CHERNOV" средний балл выше, чем у "URIVSKII
CHERNOV" и "URIVSKII" - не  родственники"
NIL

6   голосов, оценка 4.500 из 5


СОХРАНИТЬ ССЫЛКУ