wity_lv
2014-04-16 14:30:13 +08:00
从数学的角度理解.
函数. f(x) = x + 1;
普通理解, x = 1,2,3,4,5 .... 整数.
f(2) = 2 + 1; 计算结果为3.
如果 x 是另外一个函数.
x = f(a, b) = a + b;
f(x) = f(2, 3) + 1 = (2 + 3) + 1 = 5 + 1; 输出结果为6
再说一个不好理解的case:
y = f(a, b) = a + b;
x = f(a) = y(a, 4);
f(x) = x + 1 = f(a) + 1 = a + 4 + 1
1. 函数可以用来计算
2. 函数可以作为参数(变量也是函数)
3. 函数可以用来生成函数(变量也是函数)
用mit-scheme实现.
1. 函数可以用来计算
(define plus1(x) (+ x 1)
(plus1 2) #> 输出3
2. 函数可以作为参数(变量也是函数)
(define plus-both(a b) (+ a b)
(plus1 (plus-both 2 3) ) #> 输出 6
3. 函数可以用来生成函数(变量也是函数)
(define generated_fun(a) (plus1 (plus-both a 4) ) #> a + 4 + 1
(generate_fun 1) #> 1 + 4 + 1 输出 6
函数式编程语言能够很容易使用数学的方式来思考。