有没有办法在 Common Lisp 中从布尔值解析为整数?

ale*_*cks 0 lisp int boolean common-lisp

我正在寻找一些内置函数或 Common Lisp 中的一些运算符,当输入为假布尔表达式时将返回“0”,当它为真时返回“1”。一个例子是:

(setq a 3)
(setq b (+ (bool-to-int (< 0 a)) 2)
(print "b should be 1 + 2 = 3")
Run Code Online (Sandbox Code Playgroud)

有没有办法在不定义自定义函数的情况下使用 Common Lisp 做到这一点?

cor*_*ump 8

您可以(if <exp> 1 0)在任何需要将布尔表达式映射到[0, 1]. 没有内置形式可以完全按照您的方式进行操作。