如何进入高级函数式编程


12

首先我很抱歉,如果这不是该问题的正确答案,但是我认为,CS。不适用于StackOverflow,这也不是正确的答案。

我真的很喜欢函数式编程,我认为我是F#的中级人员,并且对Haskell的基本概念非常了解-是的,我想我知道/也很清楚Monad是什么。

现在,我真的很想将其带到一个新的高度,并想了解所有关于函子和东西的话题。我只是不知道从哪里开始。

阅读有关Lambda微积分的信息吗?范畴论?我俩都知道一点,但我不认为这是正确/最快的启蒙方式。

也许您可以给我一些提示。

PS:我不怕数学,也不会轻易对练习感到沮丧,但是我更喜欢一些介绍/文本,您可以在其中放置一些代码,因为这样您可以立即获得反馈。

Answers:


6

F#是一个好的开始,您应该继续使用Haskell,并且一定要阅读lambda演算并阅读上面提到的Lambda论文

如果您来自面向对象的背景,则使用混合语言(Clojure,Scala,OCaml等)可能会有助于将其简化,但是我认为,如果您真的想了解功能性编程思维方式,则应该坚持使用真实的东西(Haskell,Lisp等)。


谢谢-当然,我会坚持使用F#(我可以在生产代码中使用此代码...),并且我将尝试学习更多haskell-但这很难,因为我发现很难做其他事情而不是haskell中的控制台应用程序(然而)。-方案可能不错(曾在Lisp中播放过一小段),但OCaml与F#几乎相同(我认为)
卡斯滕

@CarstenKönig:您可以执行很多非常有趣的项目,而不必担心UI。在编程语言上工作是一个不错的选择:用Haskell编写简单的Scheme或Prolog解释器是一项很棒的练习,并且幸福地生活在命令行中。
Tikhon Jelvis'3

4

如果时间充裕,我建议您阅读这三本书:

这三本书将全面丰富您对函数式编程的理解。


自动柜员机的时间不是问题-如果我仍然在晚上发现精力,我会花些时间...可能会很慢,但通常我可以阅读很多东西。当然,有了这些书,我的步伐就会慢下来……谢谢(可悲的是,最后一本书似乎已经绝版了……受不了从屏幕上阅读)
卡斯滕(Carsten

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.