从表达式到函数:表面的简洁
来源:互联网 发布:淘宝装修店招图片 编辑:程序博客网 时间:2024/05/28 15:53
scheme/lisp中,(基于运算元、运算符的)表达式运算是一个语法基础,但它们被称为函数式语言而非表达式语言。那么,它们是如何解释函数式语言的呢?
一个lisp的函数在语法上应当书写为如下格式:
----------------
((lambda (p1...pn) e) a1...an)
----------------
这是什么意思呢?其实,这其中的p1..pn为形式参数,而a1..an为实际参数,而lambda则是一个从天上掉下来的概念,它被用来作为一个函数标识符的命名——就好象四则运算中的x,y,z只是命名一样。换成JavaScript的语法,就是这样:
----------------
function lambda(p1,p2) { // ... pn
e
}
lambda(a1,a2); // ... an
----------------
当然,javascript作为函数式语言,你也可以声明即调用。如下:
----------------
(function lambda(p1,p2) {
e
})(a1,a2))
----------------
所以,事实上较规范的lisp函数调用语法风格与上面的并没有什么不同:
----------------
((lambda (p1,p2)
e
) a1 a2)
----------------
按照约定,e是一个或一组表达式。这里就回到上一篇文章(在这里)说的了:表达式是语言基础:
-----------
(symbol)
-----------
在表达式、值(以及变量)、函数等基本概念上,javascript与lisp/scheme没有什么不同。不过,后者是面向表(list,一个值或函数的序列)来处理的,而javascript则面向关联数组(属性包,一个“名-值”对的表)。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1815379
- 从表达式到函数:表面的简洁
- 从表达式到函数:表面的简洁
- 从表达式到函数:表面的简洁
- 从表达式到函数:表面的简洁
- 从表达式到函数:表面的简洁
- 从表达式到函数:表面的简洁
- 从表达式到函数:表面的简洁
- 从表达式到函数:表面的简洁
- 从表达式到函数:表面的简洁
- 从表达式到函数:表面的简洁
- 从表达式到函数:表面的简洁
- 表面的简洁
- 表面的简洁
- 更加简洁的代码从MVC到MVP
- 从线框模型到表面模型绘制技术的联想
- 简洁表达式
- OpenGL从1.0开始--光照和表面绘制函数
- 简洁的字符处理函数
- 企业管理软件的需求描述方法
- 技术译者必读——技术图书翻译方法指南
- Boost 入门及其VS2005下编译boost库
- JSP初学者数据库教程(三)修改数据
- 下载 XmlLite ( 包括:xmlLite.h , xmlLite.lib , xmlLite.dll )
- 从表达式到函数:表面的简洁
- 感谢一个叫袁朗的男人
- java 异常处理
- 论译者翻译思想的解放
- 写给对前途迷茫的朋友:五句话定会改变你的人生
- Zw*与Nt*的区别
- 下载 XmlLite ( 包括:xmlLite.h , xmlLite.lib , xmlLite.dll )
- 分析“新秀”Silverlight如何挑战flash
- 《给初学者的Windows Vista的补遗手册》之055