《JavaScript函数式编程思想》——函数是一等值

第4章  函数是一等值

在函数式编程的标准或特点中,“函数是一等值”是最基本和重要的,也是最为人所知的,所有介绍函数式编程的书籍和文章都会优先介绍这一点,以至于“一等值”几乎成为函数的专属头衔,听上去就像“王牌”一类的文学修辞,而实际上却两者皆不是。一等(First-class)是编程语言中值的通用修饰词,只要某个值满足以下三个条件,就能被称为一等值。

  1. 可以作为参数传递给函数
  2. 可以作为函数返回值
  3. 可以被赋值给变量

所以数字、字符串等常用的值都是一等的。如果仅满足第一条,而不能作为函数返回值或被赋值给变量,就称为二等的(Second-class)。假如三条都不满足,则称为三等的(Third-class)。例如,标签(Label)在支持它的语言中基本上都是三等的(只能用于goto等语句,不能作为参数传递给函数等等)。函数值的情况最多样,在Basic语言中是三等值,在Pascal中是二等值,在C、Fortran、C#等语言中是一等值,当然在所有函数式编程语言如Scheme、Haskell、Clojure中都是一等值。

此外,依赖变量和赋值是命令式编程的特点,函数式编程因为从原则上排斥状态,不鼓励使用变量,纯粹的函数式编程语言甚至没有变量,因而在这些语言中,函数是一等值的第三个条件就变为可以被赋值给常量。

4.1  函数参数    
4.1.1  数组的迭代方法    
4.1.2  设计函数参数    
4.2  函数返回值    
4.2.1  判断数据类型    
4.2.2  日志    
4.2.3  读取对象属性    
4.3  高阶函数    
4.3.1  组合谓词函数    
4.3.2  改变函数参数数目    
4.3.3  检查参数类型

4.3.4  记忆化

缓存是提高程序性能的重要技术,对于输入输出、高耗资源的计算等需要花费较长时间的功能,将结果保存在能快速访问的载体里,以后遇上同样的调用,就直接读取上次保存的结果,从而大大节省时间,简言之,就是“以

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值