LISP 学习笔记 (一)-初识LISP,表达式写法

来源:互联网 发布:linux reboot 编辑:程序博客网 时间:2024/06/04 22:20

因为在学习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

总结:

  1. LISP是函数式编程,所以所有的输入都被认为是函数(严格来说应该叫做表达式)。而函数总是用括号括起来;
  2. 函数 f(x) 会表示为 (f x)。例如 cos(0) 就会写成 (cos 0);我们看到,第一个元素总是函数名称/符号,之后的就是函数参数;
  3. 一些常用的运算符实际上也是函数,例如加法函数 f(x,y)=x+y 就表示为(+ x y);
  4. 有些函数可以有任意个参数,例如 (* 2 4 6 8 10) 表示这几个数字相乘;
  5. 参数也可以是函数;例如(cos 0)和(+ 4 6)都是乘积(“*”)函数的参数,但它们本身也是函数; 
  6. 一般情况下,作为参数的函数/表达式总是先被计算(一般参数计算顺序由右到左,但也有一些例外情况,譬如if 和or函数的参数就按照从左到右的顺序计算),直到最外面的运算完了,程序就结束。

下课了……

 

注:思考一下这两个表达式有什么区别:(or t (> 2 1)) 和 (or (> 2 1) t)?

原创粉丝点击