Добавил:
teriint
wolfain@mail.ru
Хз кто это читает, но знайте - открыт к любым новым знакомствам (нет). Хех.
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:3
.txt(setf *database* ())
(defun add-record (&key d n pt)
(setf *database* (cons (list :destination d :id n :plan-type pt) *database*)))
(defun printAll (&optional (outstr NIL))
setf *database* ())
(defun printAll (&optional (outstr NIL))
(dolist (item *database*)
(print item outstr)))
(defun dest-selector (dest-value) #’(lambda (x) (equal (getf x :destination) dest-value)))
(defun id-selector (id-value) #’(lambda (x) (equal (getf x :id) id-value)))
(defun ptype-selector (ptype-value) #’(lambda (x) (equal (getf x :plan-type) ptype-value)))
(defun select-by-plan-type ()
(setq res (remove-if-not (ptype-selector (read)) *database*))
(if (equal res nil) "no matches" res))
(defun update (selector-func &key d n pt)
(setf *database*
(mapcar #'(lambda (record)
(when (funcall selector-func record)
(if d (setf (getf record :desination) d))
(if n (setf (getf record :id) n))
(if pt (setf (getf record :plan-type) pt)))
record)
*database*)))
(defun save-to-file ()
(setf out (open "E:\\extern.txt" :direction :output))
(printAll out)
(close out))
(defun load-from-file ()
(setf in (open "E:\\extern.txt" :direction :input))
(loop
(setf item (read in nil 'eof))
(if (equal item 'eof) (return *database*))
(setf *database* (cons item *database*)))
(close in) *database*)
(add-record :d "five" :n 5 :pt "fivetype")
(add-record :d "seven" :n 7 :pt "seventype")
(add-record :d "six" :n 6 :pt "sixtype")
(add-record :d "nine" :n 9 :pt "ninetype")
(select-by-plan-type) "sixtype"
(select-by-plan-type) "new"
(update (ptype-selector "fivetype") :d "New Dest" :n 55)
(printAll)
Соседние файлы в предмете Искусственный интеллект