let & letn 区别

来源:互联网 发布:mac os 菜单栏 编辑:程序博客网 时间:2024/05/18 12:34

let 和 letn 都可以同时定义多个局部变量。

比如:

> (let ((x 1) (y 2)) (list x y))  (1 2)

和下面的功能相当:

> (letn ((x 1) (y 2)) (list x y))  (1 2)

但是,当y的初始值依赖于x时,let不支持这种初始化方式,只能使用letn

> (let ((x 1) (y (+ x 2))) (list x y))  ERR: value expected in function + : x> (letn ((x 1) (y (+ x 2))) (list x y))  (1 3)