Red Hat 的软件工程师。对函数式编程、范畴论以及数学和编程的其他交叉领域感兴趣。对墨西哥胡椒疯狂。
我们解释什么是函数式编程,探索它的优点,并寻找学习函数式编程的资源。
您好 Norton。这有两个方面。
首先,许多语言都允许您在任何地方进行 I/O,这就提出了一个问题:除了绝对必要的地方,避免 I/O 是否值得。 这样做*是*值得的,因为它让您可以使用快速且宽松的推理。“函数式核心/命令式外壳”模式就是如何在实践中实现这一点的示例。
其次,是否有一种方法可以在纯函数式程序中执行 I/O(或其他副作用)(并具有所有这些好处)? 你可以 - 你只需要一个*解释器*来完成这些繁琐的部分。 从这个意义上说,纯程序就像一个菜谱:一组不会自行执行任何操作的指令。
你好 Matt。 我认为 LYAH 适合学习 Haskell 语法,对于初学者程序员来说可能也不错。 它很好地解释了很多事情,但 IMO 在教授 FP 的基础抽象(无论使用哪种语言)方面做得不好。 但这些只是我自己的经验,无论如何,它绝对是一本有趣且引人入胜的书。
发表评论
您好 Norton。这有两个方面。
首先,许多语言都允许您在任何地方进行 I/O,这就提出了一个问题:除了绝对必要的地方,避免 I/O 是否值得。 这样做*是*值得的,因为它让您可以使用快速且宽松的推理。“函数式核心/命令式外壳”模式就是如何在实践中实现这一点的示例。
其次,是否有一种方法可以在纯函数式程序中执行 I/O(或其他副作用)(并具有所有这些好处)? 你可以 - 你只需要一个*解释器*来完成这些繁琐的部分。 从这个意义上说,纯程序就像一个菜谱:一组不会自行执行任何操作的指令。
你好 Matt。 我认为 LYAH 适合学习 Haskell 语法,对于初学者程序员来说可能也不错。 它很好地解释了很多事情,但 IMO 在教授 FP 的基础抽象(无论使用哪种语言)方面做得不好。 但这些只是我自己的经验,无论如何,它绝对是一本有趣且引人入胜的书。