LISP 简单的数据库 3.4 改进用户交互
来源:互联网 发布:vb len函数 编辑:程序博客网 时间:2024/05/29 03:13
;使用全局变量记录数据(defvar *db* nil);数据记录格式(defun make-cd (title artist rating ripped) (list :title title :artits artist :rating rating :ripped ripped));添加记录(defun add-record (cd) ( push cd *db*));查看数据库内容(defun dump-db() (dolist (cd *db*) (format t "~{~a: ~10t~a~%~}~%" cd)));提示用户输入CD信息(defun prompt-read (prompt) (format *query-io* "~a: " prompt) (force-output *query-io*) (read-line *query-io*));依次提示用户输入信息(defun prompt-for-cd() (make-cd (prompt-read "Title") (prompt-read "Artist") ;(prompt-read "Rating") ;(prompt-read "Ripped [y/n]") ;快餐式验证数据有效性 (or (parse-integer (prompt-read "Rating") :junk-allowed t) 0) (y-or-n-p "Ripped [y/n]: ") ));批量添加数据,使用回车退出(defun add-cds() (loop (add-record (prompt-for-cd)) (if (not (y-or-n-p "Another? [y/n]:")) (return) ) ))
LISP还支持中文