common-lisp 条件表达式

示例

条件表达式可以使用~[和来完成~]。表达式的子句使用分隔~;。

默认情况下,~[从参数列表中获取一个整数,然后选择相应的子句。子句从零开始。

(format t "~@{~[First clause~;Second clause~;Third clause~;Fourth clause~]~%~}"

        0 1 2 3)

; First clause

; Second clause

; Third clause

; Fourth clause

最后一个子句可以用分隔,~:;以使其成为其他条款。

(format t "~@{~[First clause~;Second clause~;Third clause~:;Too high!~]~%~}"

        0 1 2 3 4 5)

; First clause

; Second clause

; Third clause

; Too high!

; Too high!

; Too high!

如果条件表达式以开头~:[,则它将期望使用广义布尔值而不是整数。它只能有两个子句。如果布尔值为,则打印第一个,如果为真NIL,则打印第二个子句。

(format t "~@{~:[False!~;True!~]~%~}"

        t nil 10 "Foo" '())

; True!

; False!

; True!

; True!

; False!

如果条件表达式以开头~@[,则只有一个子句,如果输入(广义布尔值)为真,则将打印该子句。如果布尔值是真实的,则布尔值将不会被消耗。

(format t "~@{~@[~s is truthy!~%~]~}"

        t nil 10 "Foo" '())

; T is truthy!

; 10 is truthy!

; "Foo" is truthy!

           

以上是 common-lisp 条件表达式 的全部内容, 来源链接: utcz.com/z/326280.html

回到顶部