programming-languages学习笔记--第3部分

programming-languages学习笔记–第3部分

1 First-Class Functions

函数式编程有几种不同的意义:

  • 在大部分/所有情况下避免可变性(mutation)
  • 像使用值一样使用函数

  • 递归风格和递归数据结构
  • 接近数学定义的风格
  • 使用惰性的编程模型

first-class function: 可以在任何地方使用函数。

fun double x = 2 * x
fun incr x = x + 1
val a_tuple = (double, incr, double(incr 7))
val eighteen = (#1 a_tuple) 9
val double = fn : int -> int
val incr = fn : int -> int
val a_tuple = (fn,fn,16) : (int -> int) * (int -> int) * int
val eighteen = 18 : int

作者: ntestoc

Created: 2018-12-14 Fri 10:33

猜你喜欢

转载自www.cnblogs.com/ntestoc/p/10118031.html