什么是泛函编程(Functional Programming)?泛函编程就是用函数编写程序。这个回答太抽象,等于没说。 再说清楚一点:泛函编程就想砌积木一样把函数当成积木块,把函数的输出输入作为积木的楔子和楔孔,把一个函数的输出当作另一个函数的输入组合成一个更大的函数。整个砌积木的过程就是泛函 ...
延后计算 lazy evaluation 是指将一个表达式的值计算向后拖延直到这个表达式真正被使用的时候。在讨论lazy evaluation之前,先对泛函编程中比较特别的一个语言属性 计算时机 strict ness 做些介绍。strict ness是指系统对一个表达式计算值的时间点模式:即时计算的 strict ,或者延后计算的 non strict or lazy 。non strict或 ...
2015-03-16 09:29 0 2268 推荐指数:
什么是泛函编程(Functional Programming)?泛函编程就是用函数编写程序。这个回答太抽象,等于没说。 再说清楚一点:泛函编程就想砌积木一样把函数当成积木块,把函数的输出输入作为积木的楔子和楔孔,把一个函数的输出当作另一个函数的输入组合成一个更大的函数。整个砌积木的过程就是泛函 ...
由于泛函编程非常重视函数组合(function composition),任何带有副作用(side effect)的函数都无法实现函数组合,所以必须把包含外界影响(effectful)副作用不纯代码(impure code)函数中的纯代码部分(pure code)抽离出来形成独立的另一 ...
上期我们讨论了IO处理过程:Process[I,O]。我们说Process就像电视信号盒子一样有输入端和输出端两头。Process之间可以用一个Process的输出端与另一个Process的输入端 ...
编程语言了。前面我们介绍了Trampoline的运算模式可以有效解决堆栈溢出问题,而上节的Free Mon ...
折叠算法是List的典型算法。通过折叠算法可以实现众多函数组合(function composition)。所以折叠算法也是泛函编程里的基本组件(function combinator)。了解折叠算法的原理对了解泛函组合有着至关紧要的帮助。折叠算法又可分右折叠和左折叠。我们先从右折叠 ...
极值的概念 函数 \(f(x)\) 在 \(x_0\) 处取得极小值,是指当 \(x\) 在 \(x_0\) 点及其附近 \(|x - x_0| < \varepsilon\) 时,恒有 ...
1.一般的泛函就是把函数作为元素来研究的一门学科,泛函分析,举个简单一点的列子,我们以前学的函数是把数字作为基本的元素来研究的,现在更高一个层次,就是元素就是一个函数,比如全体实系数连续函数构成一个集合A,那么这个A中每一个元素就是一个函数,而泛函就是研究在类似于A这种集合到数之间的关系,比如在 ...
一百年前的数学界有两位泰斗:庞加莱和希尔伯特,而尤以后者更加出名,我想主要原因是他曾经在1900年的世界数学家大会上提出了二十三个著名的希尔伯特问题,指引了本世纪前五十年数学的主攻方向,不过还有一个原 ...