最开始是被"纯函数式"这名头劝退的,总觉得写个hello world都得先跟Monad搏斗。真用上之后才明白,它其实是把"怎么写"的麻烦换成了"想清楚"的安心,这买卖不亏。
纯函数没有副作用,是头一回让我感到一类隐含Bug在编译期就被挡下了。你不必满世界翻谁偷偷改了全局状态,因为压根就没有全局状态给你改。类型系统像个会推理的搭档,参数传错了当场把红叉甩脸上,而不是等上线半夜崩给你看。
惰性求值也够迷人,很多"怎么做"的细节它替你兜了,抽象写出来干净得不像话。当然学习曲线陡是事实,但爬上去再看别的语言,总会冒出念头:这要是Haskell,三行就完事了。