因为在学习LISP。写写笔记,希望能持之以恒。
*声明:所有参考资料均出自网络,版权归原作者所有
参考:LISP Tutorial 1: Basic LISP Programming:http://www.cs.sfu.ca/CC/310/pwfong/Lisp/1/tutorial1.html
首先,当然是建立环境,本来想着这个会有点麻烦,谁知道直接到http://sourceforge.net/projects/clisp/下载,安装,双击快捷方式就搞定,汗一个……
这是打开之后的界面,版本2.45:
要退出就输入:(quit)或者(exit),然后回车。当然,直接x窗口也行……
这是第一笔——LISP表达式
操作:输入“(* 2 (cos 0) (+ 4 6))” 之后,会得出结果:20
总结:
- LISP是函数式编程,所以所有的输入都被认为是函数(严格来说应该叫做表达式)。而函数总是用括号括起来;
- 函数 f(x) 会表示为 (f x)。例如 cos(0) 就会写成 (cos 0);我们看到,第一个元素总是函数名称/符号,之后的就是函数参数;
- 一些常用的运算符实际上也是函数,例如加法函数 f(x,y)=x+y 就表示为(+ x y);
- 有些函数可以有任意个参数,例如 (* 2 4 6 8 10) 表示这几个数字相乘;
- 参数也可以是函数;例如(cos 0)和(+ 4 6)都是乘积(“*”)函数的参数,但它们本身也是函数;
- 一般情况下,作为参数的函数/表达式总是先被计算(注一般参数计算顺序由右到左,但也有一些例外情况,譬如if 和or函数的参数就按照从左到右的顺序计算),直到最外面的运算完了,程序就结束。
下课了……
注:思考一下这两个表达式有什么区别:(or t (> 2 1)) 和 (or (> 2 1) t)?