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

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

JSP中EL表达式的应用以及常用的方法

EL表达式      1、EL简介 1)语法结构        ${expression} 2)[]与.运算符      EL 提供.和[]两种运算符来存取数据。 ...
  • yali1990515
  • yali1990515
  • 2015年08月29日 20:20
  • 4531

c#Lamdba表达式与委托

介绍:      “Lambda 表达式”(lambda expression)是一个匿名函数,在C#3.0中引入了lambda表达式。是对匿名函数的一种简化。它可以包含表达式和语句,并且可用于创建委...
  • han_yankun2009
  • han_yankun2009
  • 2014年05月27日 20:03
  • 3531

匿名函数之lambda表达式

Objective-C 匿名函数 C语言 匿名函数 C++ 匿名函数 Java 匿名函数 C# 匿名函数
  • chy555chy
  • chy555chy
  • 2016年06月09日 11:37
  • 984

EL表达式对字符串的操作

el表达式操作字符串
  • u011194917
  • u011194917
  • 2017年06月23日 17:10
  • 195

404页面的简洁版

body { background-color: #ECECEC; font-family: 'Open Sans', sans-serif; font-size: 14px; col...
  • wfjolre
  • wfjolre
  • 2013年11月20日 11:09
  • 506

Lambda表达式与简洁代码

作为一名码农,猎奇与炫技是我们共同的特征,并乐此不疲,因为他们是就是这样一群聪明的群体,这是我们的优点,但凡事有度,过分的去追求“极致”并万金油。 自Java5引入注解以来,注解的使用遍地开花,聪明...
  • kangkanglou
  • kangkanglou
  • 2017年11月27日 20:23
  • 38

【java学习之旅】——JSTL+EL表达式让jsp页面简洁化

【前言】 &# jsp2.0之后,页面上几乎不使用Java脚本了,其实不难理解,因为在计算机中程序分工越来越明确,三层,mvc的使用都是程序划分层次结构的产物,jsp只能用做页面的显示,所以JS...
  • changyinling520
  • changyinling520
  • 2017年05月27日 21:44
  • 598

EL表达式-自定义函数

表达式语言除了可以使用基本的运算符外,还可以使用自定义函数。通过使用自定义函数,加强了表达式语言的功能。  EL表达式函数,主要功能是完成对数据的修改,统一化格式;  开发步骤:  ...
  • zmx729618
  • zmx729618
  • 2016年07月11日 10:52
  • 931

JavaScript中的立即执行函数表达式

前言 在使用JavaScript的时候经常会看见类似如下的函数调用方式: (function(){ console.log("test"); })(); 或者 (funct...
  • jackyechina
  • jackyechina
  • 2016年09月21日 09:30
  • 722

JavaScript中”立即调用的函数表达式“

在学习JavaScript的时候,经常会看到“自动立即执行的函数代码”。 说的通俗点就是:定义一个函数,然后立即调用它。 我们知道调用一个函数的方式是在函数名称后面添加一对圆括号。 例如: var ...
  • zhuyunhe
  • zhuyunhe
  • 2015年05月04日 12:18
  • 1084
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:从表达式到函数:表面的简洁
举报原因:
原因补充:

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