大家520快乐!祝各位都能跟心仪的另一半进行crossover,产生fitness更高的后代哦~

蛤?你没有另一半?没关系,本小编发现了一个库,用了这个库,你就能跟心仪的数据结构进行交合了哦~ 更厉害的是,交合对象跟你种类不一样也可以呢。甚至,多p交合也是小事一桩哦~ 你还在等什么,快来implement你内心深处的privateの梦吧!

http://okmij.org/ftp/Haskell/extensible/#crossover

Extensible Effect旨在解决一个问题:如何Extensible的添加新Effect(这不废话吗)

我们的老朋友Data Type A La Carte酱尽管对Extensible挺能干的,但在这其实挺苦手的 - DTALC并不能Extensible的改变返回值,而每次新增Effect都需要这样做。

在Generic Crossover中,Oleg用Extensible Effect实现了一个State,一个Coroutine,然后就可以用两个effect来(加上SYB)作任意crossover

圆角骑士魔理沙:一招鲜,吃遍天

里面Session Type作法也很漂亮 - 更准确的说,看OK大法(final tagless,eff)的时候都会觉得像他那样做是正当作法,很trivial/natural,但是往往他本人也要一段时间才找得出来(可以看看eff的前身,当时还依赖奇奇怪怪的Request)

顺带一提,我很喜欢PL的原因是,概念是高度Composable的,新的概念往往可以用毫不相干的旧概念实现 - Generic Crossover用了Eff跟SYB,SYB自身又依赖于Typing Dynamic Typing这种做法,更极端的情况我觉得可以看EK这个comment:

https://www.reddit.com/r/haskell/comments/387ex0/are_extensible_effects_a_complete_replacement_for/crt1pzm/

更具体讲,一半lambda the ultimate一半growing a language呢。

http://library.readscheme.org/page1.html

https://www.cs.virginia.edu/~evans/cs655/readings/steele.pdf

另:The Reluctant Heroes莫名的好听

另另:知乎你们搞什么鬼,NLP做得这么烂,默认文章问题有生物学就算了,蔡英文跟马英九什么鬼,好歹要加入用户历史数据作prior啊