Common Lisp语法——标准控制宏

本文详细介绍了Common Lisp中的标准控制宏,包括WHEN和UNLESS的用法,简化了IF表达式的结构;深入解析了COND宏在多重条件判断中的应用;探讨了AND、OR和NOT在逻辑运算中的作用;并讲解了Looping的相关宏,如DOTIMES, DOLIST, DO和LOOP,展示了它们在不同场景下的循环控制功能。" 139427960,17243493,Python机器学习入门:搭建环境与核心算法,"['Python', '机器学习', '深度学习', '大数据', '人工智能', '数据科学']
摘要由CSDN通过智能技术生成

WHEN和UNLESS

先来了解下IF表达式:

(if condition then-form [else-form])

其行为就是:当condition为non-NIL时则运行then-form并返回其值,否则运行else-form并返回其值。

(if (> 2 3) "yes" "no")   -> "no"
(if (> 2 3) "yes")        -> NIL
(if (> 3 2) "yes" "no")   -> "yes"
但是稍显不足之处在于IF表达式中的then-form和else-form都是single Lisp form。所以如果想顺序执行某个分支中的所有语句,只能如下形式:

(if (spam-p current-message)
  (progn 
    (file-in-spam-folder current-message)
    (update-spam-database current-message)))
这里的PROGN操作符,可按序执行其内部的任意数目的表达式,并以最后一个表达式的值作为PROGN表达式的值返回。

在Common Lisp中提供了宏WHEN以简化上面的代码:

(when (spam-p current-message)
  (fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值