4~5月的一些日常

4/23:

阅读了coolshell.cn关于协程的文章,明白了C语言的switch(){case:}的另类用法,已经__LINE__,__DATE__等一些宏定义。以及对于python的field的用法,即为返回一个generator。由于文章还未读懂,明天要继续阅读。


4/24:

sicp中的嵌套映射以及写了生成(1~n)的质数映射三元组。和课后2习题,但是是在上课时写的。最后晚上的时候阅读了coolshell中关于元驱动的文章但是没搞懂啊,以及阮一峰关于函数尾调用&&尾递归的原理。


4/26-28

调整linux客户端的同步恢复代码,并学习了sicp,已经进行到了100页,由于个人懒惰问题忘记了编写日常

4/29

函数式编程的几个特性(coolshell):immutable data 不可变数据:像Clojure一样,默认上变量是不可变的,如果你要改变变量,你需要把变量copy出去修改。这样一来,可以让你的程序少很多Bug。因为,程序中的状态不好维护,在并发的时候更不好维护。(你可以试想一下如果你的程序有个复杂的状态,当以后别人改你代码的时候,是很容易出bug的,在并行中这样的问题就更多了)

first class functions:这个技术可以让你的函数就像变量一样来使用。也就是说,你的函数可以像变量一样被创建,修改,并当成变量一样传递,返回或是在函数中嵌套函数。

尾递归优化:我们知道递归的害处,那就是如果递归很深的话,stack受不了,并会导致性能大幅度下降。所以,我们使用尾递归优化技术——每次递归时都会重用stack,这样一来能够提升性能,当然,这需要语言或编译器的支持。Python就不支持。

还有函数式的一些好处:

parallelization 并行:所谓并行的意思就是在并行环境下,各个线程之间不需要同步或互斥。

lazy evaluation 惰性求值

determinism 确定性

你可能感兴趣的:(4~5月的一些日常)