在其他编程范式之后学习函数式编程

Learning functional programming after other programming paradigms

我自学了 C、Python、Java 和其他一些过程或面向对象的语言,这些语言的中等程度来自 Internet 上的资源(感谢 SO :D)和书籍。当我尝试学习 Haskell 时,我无法理解代码的实际作用。

是否有更好的函数式语言可供具有过程或面向对象编程背景的人学习?是否有适合我这种情况的人的资源?

谢谢!

这可能因人而异(这个问题必然会因此而结束),但我的看法是:在触手可及 Haskell.

所以我想说你暂时被语言驱赶的不一定是语言,而是你的学习来源。对于唯一真正温和的介绍,我推荐 LYAH。它使事情的难度保持在合理的范围内,并且不时有一些非常有趣的观点。

但是,如果您仍然想要几乎软化您的过渡,您可以查看 F#,它不是一种函数式语言,但它会让您很好地体验 FP,并且您会非常熟悉它,因为你仍然生活在面向对象的世界里。
您还可以检查基本上任何其他函数式语言,它会给您一些思维方式(Scala、ML 等)。

请记住,我说 "almost-soften",因为 Haskell 非常不同(尤其是因为纯度),这让你对事物有一种非常逻辑和数学的思维方式,这非常对我来说不同于我学过的任何其他语言。太不可思议了。它不仅仅是学习不同的语法,它是一种思考事物的方式,我总能发现自己学到更多,其中真正令人惊奇的部分是(因为它是如此合乎逻辑、数学、合理等)新的思维方式我学会了 Haskell 当我使用其他语言时甚至在我个人的日常生活中都不要离开我。

话虽这么说,Haskell 唯一真正可怕的是它毁了我的其他语言。我以前喜欢 C#... :(