组成部分
函数型语言有以下四个组成部分:
(1)一个原语函数集;
(2)一个函数型集;
(3)作用操作;
(4)一个数据对象集。
原语函数是由语言预先定义的,可以直接进行作用。函数型是函数组合的机制,可以用于创建新的函数。数据对象包括定义域和值域的成员。函数型程序设计语言的特性是具有一个非常有限的数据对象集,其上含有简单而正规的结构,函数型程序设计的主要方法是使用函数型定义新的函数。
函数型程序设计语言除了包括上述四个组成部分外,还具有把名字约束到新定义函数的机制。这一设施为语言的使用提供了方便,避免了对函数多次重复定义的问题。1
代表性语言函数型语言的代表性语言有LISP、APL、FP和FFP等。
APL是由Kenneth Iverson于50年代末至60年代初在哈佛大学设计的。其设计主要是基于数学,也适当考虑了机器效率。
FP是John Bachus于1977年提出的一种纯函数型语言。FP语言的基本概念建立在原子(atom)的基础上,原子用于建立对象与表达式。
FFP是John Bachus在FP的基础上提出来的另一种函数型语言。FFP语言在FP语言的基础上,引入了一些新的概念,例如,作用(application)、元合成(metacomposition)、取(fetch)、存(store)等。FFP语言与APL、FP语言有许多一致的地方,因此受到了人们的普遍重视。
LISP是最具有代表性、影响最广的函数型程序设计语言。1
LISP特点LISP语言的主要特点是:
(1)LISP程序由一组函数组成,程序的执行过程是函数的调用过程。
(2)程序和数据在形式上是相同的,即都是符号表达式,简称为s一表达式。
(3)递归是LISP语言的主要控制结构。
(4)程序以交互方式运行。2