从表达式到函数:表面的简洁

原创 2007年10月08日 15:35:00

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则面向关联数组(属性包,一个“名-值”对的表)。

深入浅出正则表达式

本课程由King老师精心打造的深入浅出正则表达式课程,课程中详细剖析了正则表达式基础语法,常用函数,以及通过正则表达式完成常用的数据校验,最后还深入介绍了正则中的捕获和非捕获,贪婪和非贪婪模式,正则表达式优化等,是WEB开发必不可少的模块! 山哥出品,必属精品!
  • 2017年09月05日 09:48

从表达式到函数:表面的简洁

2007年10月08日 15:35:00 scheme/lisp中,(基于运算元、运算符的)表达式运算是一个语法基础,但它们被称为函数式语言而非表达式语言。那么,它们是如何解释函数式语言的呢?...
  • softart
  • softart
  • 2007-10-27 18:13:00
  • 272

表面的简洁

本文刊发在《程序员》杂志09年第二期上。是讨论函数式语言基本性质和发展方向的一篇文章。   表面的简洁 一、把大象装进冰箱 =====   在命令式语言(当然我们可以确...
  • aimingoo
  • aimingoo
  • 2009-04-22 11:44:00
  • 4064

artTemplate 简洁语法版

使用 引用简洁语法的引擎版本,例如: 下载----->https://raw.githubusercontent.com/aui/artTemplate/master/dist/te...
  • u013981877
  • u013981877
  • 2015-01-30 17:57:23
  • 4176

C#语言—表达式与基本语句

前言   上一篇博客总结了变量的基本知识,最后简单地提到了赋值等操作,这就引出了这篇博客的内容,表达式与运算符中如何利用,表达变量等其他操作数;以及如何将这些表达式灵活地引用一些if 语句,for...
  • m18633778874
  • m18633778874
  • 2017-02-23 11:35:15
  • 465

《数据库——sql语法大全》

  • 2009年02月27日 10:09
  • 211KB
  • 下载

EF Lanbda表达式

var v = db.Users.Select(e => e); //查询所有 var v = db.Users.Select(e => new { e.UserName, e.UserPwd ...
  • jsl1933291679
  • jsl1933291679
  • 2016-08-04 18:01:16
  • 214

EL表达式-自定义函数

表达式语言除了可以使用基本的运算符外,还可以使用自定义函数。通过使用自定义函数,加强了表达式语言的功能。  EL表达式函数,主要功能是完成对数据的修改,统一化格式;  开发步骤   ...
  • z69183787
  • z69183787
  • 2015-03-10 15:55:36
  • 1336

RDLC 报表 表达式

“表达式”对话框一次只处理一个表达式。 “表达式”对话框包含代码窗口、类别树、类别项、说明窗格和示例窗格。 “表达式”对话框是上下文相关的;随着您所使用的表达式类别的不同,各类别项和说明也会相应地变...
  • sat472291519
  • sat472291519
  • 2015-12-09 14:47:10
  • 2449

《Excel 函数、图表与透视表从入门到精通》PDF

  • 2012年11月07日 10:41
  • 1.33MB
  • 下载
收藏助手
不良信息举报
您举报文章:从表达式到函数:表面的简洁
举报原因:
原因补充:

(最多只允许输入30个字)