Lisp使用前置表达式编写程序
在Lisp中,语句也是列表,用括号包住
Lisp中一切元素都是自求值的
例如:
>(+ 1 2)
3
>(- 4 1)
3
赋值与真、假
在lisp中,通过 setf 与 let 对变量进行赋值。setf 赋值全局变量,而 let 赋值局部变量
但是,setf 只有不与某个局部变量重名才会创建一个全局变量,所以,一般使用 defconstant 或 defparameter 来创建一个全局变量,调用方法与 setf 一样
setf 和 let 接受一个符号和一个元素,并将元素赋值给这个变量,例如:
>(setf a 123)
123
>a
123
>(let ((b 123) (c 4))
(+ a b c))
250
let 可以一次给多个变量赋值并进行操作,而 setf 不行
如果 let 不进行操作,则返回 nil
nil是Lisp中唯一的假值,其他均为真值。nil 既是一个原子,又是一个列表。
T 是 真 的缩写
null 表示 不是,假如将 nil 传给 null,则返回T。如果将任意真值传给 null,则返回 nil。例如:
>(null nil)
T
>(null 123)
NIL
not 和 null 表示一样的意思
列表
在CLisp中,列表是自求值的,通过列表使用函数,例如:
>(+ 1 2)