return INT_MIN; int result = 1; for (int i = 1; i <= x ; ++i) { result *= i; } return result; } 1. 如何计算 2. 表达式和语句 3. 状态量 函数式编程⾥⾯是基本上没有状态量,只有表达式,也没有赋值语句。利⽤了递归解决了问题。 int factorial(int x){ if (x < 0) return INT_MIN; if (x==1) return 1; return x * factorial(x-1); }
Euismod, Ipsum void react() { int a = 8; int b = 9; int c = a + b; a = 10; NSLog(@"%d", c); } 在⾯向对象语⾔中也是可以实现响应式编程的,具体做法应该是,把关系抽象出来,然后把 变化抽象出来,⽤关系把变化事件传递下去。Cocoa框架下RAC的实现就是如此。
5. 只⽤"表达式",不⽤"语句",没有副作⽤ 85% 50% 76% 95% Functional Programming is a programming paradigm 1. treats computation as the evaluation of mathematical functions. 2. avoids changing-state and mutable data 所谓"第⼀等公⺠"(first class),指的是函数与其他数据类型⼀样,处于平等地位,可以赋值给其他变量,也可 以作为参数,传⼊另⼀个函数,或者作为别的函数的返回值。