LISP 学习笔记 (一)-初识LISP,表达式写法
2008-06-13 23:34
316 查看
因为在学习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)?
*声明:所有参考资料均出自网络,版权归原作者所有
参考: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)?
相关文章推荐
- shell编程学习笔记之正则表达式初识
- Python学习笔记 ——正则表达式初识
- 黑马程序员 java学习笔记 Day8:正则表达式
- Linux学习笔记—day2(3.13)------基本命令,通配符,正则表达式
- Python之学习笔记(正则表达式)
- linux_C一站学习--学习笔记(一)程序的基本概念;常量、变量和表达式;简单函数
- linux shell学习笔记--正则表达式
- 11. JAVA常用类库 Part 5 (正则表达式、定时调度、本章要点) ----- 学习笔记
- 正则表达式学习笔记
- concurrency runtime学习笔记之一:Lambda表达式
- quartz学习笔记 初略写法
- C++Primer第五版【学习笔记】——第四章 表达式
- Vbird的Linux私房菜学习笔记之正则表达式-awk
- 【R语言学习笔记】初识(三)
- 【R语言学习笔记】初识(六)
- 小白的学习笔记之正则表达式
- javaScript学习笔记正则表达式
- C# 正则表达式学习笔记(二)
- 30分钟学习正则表达式——学习笔记
- Python 学习笔记(三):文件,高级特性,枚举,正则表达式,模块