如何在lisp中从哈希表中检索信息?

如何在lisp中从哈希表中检索信息?,lisp,common-lisp,hashtable,clisp,Lisp,Common Lisp,Hashtable,Clisp,我想让用户输入LISP。然后我想看看这个输入是否是哈希表值的键,然后在哈希表中检索对应于这个键的值。我不知道该怎么做,当我运行我发布的代码时,它会在接收用户输入之前终止。请帮忙,非常感谢 (defparameter *KB* (make-hash-table)) (setf (gethash '(Robot Robbie) *KB*) T) (setf (gethash '(Likes Robbie Samantha) *KB*) T) (setf (gethash '(Dog Rover)

我想让用户输入LISP。然后我想看看这个输入是否是哈希表值的键,然后在哈希表中检索对应于这个键的值。我不知道该怎么做,当我运行我发布的代码时,它会在接收用户输入之前终止。请帮忙,非常感谢

(defparameter *KB* (make-hash-table))

(setf (gethash '(Robot Robbie) *KB*) T)
(setf (gethash '(Likes Robbie Samantha) *KB*) T)
(setf (gethash '(Dog Rover) *KB*) T)
(setf (gethash '(Bark Rover) *KB*) T)
(setf (gethash '(Likes Robbie Chocolate) *KB*) T)
(setf (gethash '(Lives Robbie California) *KB*) T)
(setf (gethash '(Likes Robbie ice-cream) *KB*) T)
(setf (gethash '(Eats Robbie petrol) *KB*) T)

(format t "Please enter a well formed function")
(terpri)
(defvar *apple* (read-line))
(terpri)
 (format t "~a ~%"*apple*)
(terpri)

我认为你有两个问题:1。使用用户输入和2。使用列表作为散列键。我想,在其他问题中,您会发现一些提示和验证用户输入的示例。如果您想使用列表作为
哈希表的键
,您应该确保使用了适当的测试函数,即
equalp
。此外,您不需要在
格式
之后使用
terpri
。查看更多详细信息。首先,通过阅读文档尝试获得答案。这当然是有用的。明确的参考文档是@BrunoHaible,我建议您链接到更新的烹饪书!谢谢大家!这本食谱真的很有用!