Chinaunix首页 | 论坛 | 博客
  • 博客访问: 229078
  • 博文数量: 35
  • 博客积分: 659
  • 博客等级: 上士
  • 技术积分: 357
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-01 21:16
文章分类
文章存档

2012年(12)

2011年(23)

分类: 云计算

2011-10-19 21:10:08

       
函数式编程
        函数式编程是种编程典范,它将电脑运算视为函数的计算。函数编程语言最重要的基础是 λ 演算(lambda calculus)。而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。和指令式编程相比,函数式编程强调函数的计算比指令的执行重要。和过程化编程相比,函数式编程里,函数的计算可随时调用。

虽然 λ 演算并非设计来于计算机上执行,但可视为第一个函数式编程语言。1980年代末期,Haskell发布,企图集合很多函数式编程研究里的想法。
 历史
 速度和空间上的顾虑
  函数式编程常被认为严重耗费在CPU和内存资源。主因有二:
  早期的函数式编程语言实现时并无考虑过效率问题。
  非函数式编程语言为求提升速度,会在某些部分放弃边界检查或垃圾回收等功能。
  缓式评估亦为语言如Haskell增加了额外的管理工作。
  函数式编程语言
  纯函数式的程序没有变量和副作用。
  函数式编程经常使用递归。
  纯函数式编程语言
  因为纯函数式程式设计语言没有变量,函数没有副作用,编写出的程式可以利用memoization、common subexpression elimination和平行计算在运行时和编译时得到大量优化。
       函数式编程中最古老的例子莫过于1958年被创造出来的LISP了,透过 LISP,可以用精简的人力。较现代的例子包括Haskell、Clean、Erlang和Miranda等。

速度和空间上的顾虑

函数式编程常被认为严重耗费在CPU和存储器资源。主因有二:

  • 早期的函数式编程语言实现时并无考虑过效率问题。
  • 非函数式编程语言为求提升速度,会在某些部分放弃边界检查或垃圾回收等功能。

惰性求值亦为语言如Haskell增加了额外的管理工作


典型的函数式编程语言
纯函数式编程语言
非纯函数式编程语言[编辑]其他函数式编程语言资料来源于:

阅读(1967) | 评论(5) | 转发(0) |
给主人留下些什么吧!~~

baiyaxiong_oc2011-11-02 20:53:48

erlang~

RSroad2011-10-30 11:46:13

RSroad2011-10-30 11:46:11

KakitChen2011-10-30 02:28:40

网络安全服务2011-10-28 09:13:00