12.7 给计算增加日志记录
日志通常可以使用全局可变状态实现。然而,如果我们想要避免使用全局可变状态,并保持程序的纯函数性,那又该如何呢?我们有一个选择,就是把日志记录器的状态作为额外的参数值,传递我们要调用的每个函数。实现可能非常困难(想象一下,如果我们决定将另一个参数添加到这个状态中!)。
要解决这个问题,我们可以创建自定义计算类型,启用了日志记录,把日志记录器的状态隐藏在计算类型...
分类:
其他好文 时间:
2015-02-01 19:13:09
阅读次数:
243
11.3.1 不同的计算策略
Haskell 是一种纯函数式语言,有一个重要的方面,即,不允许任何副作用。有专门的技术在屏幕上输出,或处理文件系统,但对于程序员来说,它是以一种看起来不像有副作用的方式来实现。在这样的语言中,调整计算排序表达式的顺序是可能的;在Haskell 中,直到需要结果,才计算函数;这不会影响程序的结果,因为,函数没有副作用。
C# 和 F# 的函数都可能有副作用,...
分类:
其他好文 时间:
2015-01-11 16:16:53
阅读次数:
195
这个问题很基础了,其实在JavaScript中变量和属性的含义跟其他命令式的语言(纯函数式语言没有变量)没有区别。其实变量和属性的共同点很明显,就是都可以存储数据,并且可以通过一定的途径来访问,大部分的情况下,我们也都是这么使用它们的,但是随着对JavaScript学习的深入,问题就随之而来了,那么...
分类:
其他好文 时间:
2015-01-09 13:56:49
阅读次数:
204
称函数$$f(z)=\frac{1}{2}\left(z+\frac{1}{z}\right),z\in\mathbb C\setminus\{0\}$$为Rokovsky函数.显然为全纯函数,我们来考虑其单叶性区域,设$f(z_{1})=f(z_{2}),z_{1}\neq z_{2}$易得$$z...
分类:
其他好文 时间:
2015-01-08 17:00:59
阅读次数:
1828
题目来自史济怀、刘太顺《复变函数》50页的最后两个习题:3.设$f$在$B(0,1)\cup\{1\}$上全纯,并且$$f(B(0,1))\subset B(0,1),f(1)=1$$证明$f'(1)\geq0$.分析 这个题目的几何意义是很清楚的,在$1$附近不能发生旋转,否则无法保证象集还在单....
分类:
其他好文 时间:
2015-01-05 14:30:47
阅读次数:
127
全纯函数的实部和虚部是调和函数,这是很显然的.自然的要问一个问题:如果$u$是区域$D$上的调和函数,那么是否一定存在一个函数$f\in H(D)$使得$${\rm Re}f=u$$成立呢? 一般来讲这个结论不对的.但是如果限制区域$D$是单连通的,那么结论就对了.下面给出这个结论的证明:注意到$\...
分类:
其他好文 时间:
2014-12-31 17:54:20
阅读次数:
773
函数式编程语言
http://program-think.blogspot.com/2012/02/why-choose-python-4-fp.html
纯函数:输出完全依赖输入的函数,不能读写外部变量、没有IO
Python中的相关内置函数:
1. map(函数,迭代器)
将迭代器中的所有内容依次传递给函数,并返回一个迭代器
可以是list...
...
分类:
编程语言 时间:
2014-12-18 12:03:36
阅读次数:
191
9.4.1 函数式和命令式类
在类或者类的构造函数的参数值中的 let 绑定,就像我们在其他 F# 代码中看到的 let 绑定一样,也是不可变值;此外,使用 member 关键字声明的属性,创建的是只读属性(只有 getter)。因此,如果类只引用其他不可变类型的值,那么,类也不可变。
比方说,在前面的例子中,我们要允许改变客户的收入,可以有两种方式:
■以纯函数式风格,对象将返回一...
分类:
其他好文 时间:
2014-12-12 11:42:13
阅读次数:
146
说明:1.本演示稿对函数式编程仅能起到“概念解释”级别上的作用,可能连“入门”都算不上。如需学习函数式编程,可以选择一门函数式编程语言进行全面学习;2.鉴于我们很少(几乎没有)接触函数式编程,本演示稿中的代码统一使用C#模仿;3.作者学习过F#,但对其他函数式编程语言(尤其纯函数式编程语言,如Lis...
分类:
其他好文 时间:
2014-09-14 22:00:37
阅读次数:
210
取$B(0,1)\setminus\{0\}$上的调和函数$\log|z|$,那么他不可能是$B(0,1)\setminus\{0\}$上某个全纯函数的实部.否则设$$f(z)=\log|z|+iu(z)\in H(B(0,1)\setminus\{0\})$$其中$u(z)$是实值的.那么$e^{...
分类:
其他好文 时间:
2014-08-22 16:10:08
阅读次数:
255