【发布时间】:2020-04-17 12:16:19
【问题描述】:
我昨晚开始学习 LISP,目前正在用通用 LISP 编写一个基于文本的酒店客房预订系统。这些是我初始化列表和变量的行:
(defparameter *rooms* (list 0))
(defvar counter 0)
(defvar room-num 0)
以下是我正在操作这些代码以搜索我的列表的一段代码:
(loop
(setq room-num(read))
(if (and
(> counter 0)(equal t (find room-num '(*room*)))
)
(progn
(print "Room already exists:")
(return 1)
)
)
(push room-num (cdr (last *rooms*)))
(setq counter (+ counter 1))
)
如果列表中尚不存在房间编号,则上面的代码会将房间编号附加到房间列表中。 我遇到的问题是在房间列表中找到房间号。
以下是我尝试过的(对不起,如果代码很草率。正如我所说,我昨天才开始使用 LISP):
(if (and (> counter 0)(equal (member room-num *room*)))
也试过了:
(if ((if (member room-num '(rooms)) t nil))
(print "Room already exists")
)
任何帮助将不胜感激。
【问题讨论】:
标签: lisp common-lisp