首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Common Lisp中,为什么(if)语句的多表达式主体需要(progn)?

在Common Lisp中,if语句用于根据条件执行不同的代码块。if语句的语法如下:

代码语言:txt
复制
(if condition then-form [else-form])

其中,condition是一个表达式,它的值将决定是执行then-form还是else-formthen-form是当condition的值为非空(true)时执行的代码块,else-form是当condition的值为空(false)时执行的代码块。

if语句的多表达式主体需要progn时,是因为if语句只允许有一个表达式作为then-formelse-form。如果需要执行多个表达式,就需要将它们放在progn中。progn是一个特殊的形式,它允许将多个表达式组合成一个表达式,并按顺序执行它们。

例如,如果我们想要在条件为真时执行两个表达式,可以这样写:

代码语言:txt
复制
(if condition
    (progn
      (do-something)
      (do-something-else))
    (do-something-elsewise))

在这个例子中,当condition为真时,do-somethingdo-something-else两个表达式将被执行。如果condition为假,则执行do-something-elsewise表达式。注意,progn是必要的,因为if语句只允许有一个表达式作为then-formelse-form

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券