1 为什么要学习函数式编程?
2 我应该学习那种语言呢?
选一种符合你的需求的。
我想,如果你是一个很有经验的程序员,这最能应付这个问题的答案是:选一种符合你的需求的。如果你需要在JVM上工作,选择Scala或Clojure。如果你想能快速的开发大型分布式软件系统,选择Erlang。如果你想要一种具有超强编译器的超能干活的语言,请选择Haskell或RCaml。如果你想要一种比Ruby或Python更有能力的原型工具,选择Scheme。
请记住,我们在这里要做这些的目的是为了实际的技能和自我进步。如果你能腾出时间学这些,就走出你的安逸环境,挑战自己。
因为我已经学习了Lisp和Erlang,而且使用OCaml做专业工作,我决定研究一下Haskell,这完全是另外一个世界。我发现唯一能帮助我参透这种语言的途径是依赖 Learn You A Haskell 和 Real World Haskell 这两本有用的指导材料。这些书写的非常好,很有价值,而且可以免费在网上找到。如果你想试一下Haskell,这些书可以当作你的寻宝图。