Списки свойств атомов - Lisp
Формулировка задачи:
Для реализации записей использовать списки свойств атомов. Составить программу определения "качества" успеваемости, т.е. процент студентов, сдавших все экзамены на 5 и 4.
Решение задачи: «Списки свойств атомов»
textual
Листинг программы
;; создание студента (defun crea-student (id fio val) (putprop id 'fio fio) (putprop id 'val val)) ==> crea-student (crea-student 'st-1 'Ivanov 4) ==> st-1 (proplist 'st-1) ==> (fio Ivanov val 4) ;; создание списка студентов (defun crea-list (lst) (let ((r nil)) (dolist (i lst r) (let ((id (gensym 'id))) (crea-student id (car i) (cadr i)) (push id r))))) ==> crea-list (setq *students* (crea-list '((Ivanov 5) (Petrov 4) (Sidorov 3)))) ==> (id6 id5 id4) ;; Создана глобальная переменная *students* ;; средний балл списка (defun avg (lst) (let ((n (length lst)) (s 0)) (dolist (a lst (/ s n)) (setq s (+ s (getProp a 'val)))))) ==> avg (avg *students*) ==> 4
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д