【发布时间】:2018-03-18 04:15:04
【问题描述】:
所以我的示例代码如下:
(defvar answer 0)
(defvar response "")
(defun question ()
(write-line "Enter your question")
(setq response (read-line))
(if (eql (subseq response 0 2) 'Is)
(print "T")
(print "nil")
))
基本前提是确定所问的问题是否以单词 is 开头。 我认为给我带来问题的行是 (if (eql (subseq response 0 2) 'Is)。我有其他使用 eql 的程序,但由于某种原因,无论输入如何,这种使用总是返回 false。我已经花了 3 个小时尝试了此代码的几种不同变体,但都没有奏效。任何帮助将不胜感激。
【问题讨论】:
-
既然标题说“难以实现 eql 和 equals”,你在哪里实现
eql和equals? -
eql 在此语句中使用:
(if (eql (subseq response 0 2) 'Is)。我还尝试在此语句中使用 equals 而不是 eql。所以 eql 被明确使用,我在标题中包含了 equals 以传达我已经尝试过 equals 的事实。 -
但是您并没有尝试实施其中任何一个,例如。
(defun equal (a b)...)。您正在尝试使用它们。标题令人困惑。
标签: lisp common-lisp clisp