无法检查布尔值是否为真?
Unable to check whether a boolean is true?
我正在尝试使用以下代码检查布尔变量 (boolVariable
) 是否为真 (T
):
(defvar boolVariable T)
(if (= boolVariable T)
(print 'TRUE)
)
但是,我收到以下错误:
- =: T is not a number
这似乎很奇怪,考虑到我认为您可以检查 Lisp 中的变量是否等于布尔值?
Common Lisp 的 = 只比较数字,t
和 boolVariable
都不是数字。
还有一些其他的相等谓词,如 eq, eql, equal or equalp,但在这种情况下,您可以只使用 bool-variable
的值(在 kebab-case 中重命名):
(defvar bool-variable t)
(if bool-variable (print 'TRUE))
If
with only then-form
can be also replaced with when
:
(defvar bool-variable t)
(when bool-variable (print 'TRUE))
我正在尝试使用以下代码检查布尔变量 (boolVariable
) 是否为真 (T
):
(defvar boolVariable T)
(if (= boolVariable T)
(print 'TRUE)
)
但是,我收到以下错误:
- =: T is not a number
这似乎很奇怪,考虑到我认为您可以检查 Lisp 中的变量是否等于布尔值?
Common Lisp 的 = 只比较数字,t
和 boolVariable
都不是数字。
还有一些其他的相等谓词,如 eq, eql, equal or equalp,但在这种情况下,您可以只使用 bool-variable
的值(在 kebab-case 中重命名):
(defvar bool-variable t)
(if bool-variable (print 'TRUE))
If
with only then-form
can be also replaced with when
:
(defvar bool-variable t)
(when bool-variable (print 'TRUE))