gpt4 book ai didi

functional-programming - 函数式、动态和面向方面的编程模式

转载 作者:行者123 更新时间:2023-12-04 02:51:25 26 4
gpt4 key购买 nike

我们有一本非常好的 GoF 书(设计模式:可重用的面向对象软件的元素),关于面向对象编程中的模式,以及网络上关于这个主题的大量文章和资源。

有没有关于函数式编程模式(最佳实践)的书籍(文章、资源)?

对于 Python 和 Ruby 等语言的动态编程?

对于 AOP?

最佳答案

之前问过一个相关问题:"Does functional programming replace GoF design patterns" ,反响很好。

“设计模式”的等价物在 FP 中非常模糊。通常,每次在代码中看到“模式”时,您都应该创建一些东西以统一的方式涵盖其所有用途。通常它将是一个高阶函数。

例如下面的 C 代码

for (int i = 0; i < n; i++)
if (a[i] == 42)
return true;
return false;

可以想到一些基本的“设计模式”——检查列表中是否有一些特殊元素。此代码段可能会在具有不同条件的代码中多次出现。在 FP 中,您只需多次使用高阶函数。它不再是“模式”。

函数式编程有自己的实践,但它们与 OOP 中的“设计模式”有很大不同。它们包括使用多态性、列表、高阶函数、不变性/纯度、惰性[并非所有都是 FP 必不可少的或特定的]...另见 "what are core concepts of FP" .此外,类型类 (Haskell)、模块和仿函数 (OCaml)、 continuations , monads , zippers , finger trees , monoids , arrows , applicative functors , monad transformers , 许多 purely functional data structures ( book ) 等 Functional pearls ,Randall Schulz 已经提到,在最好的情况下形成了一个非常丰富的 FP 资源。

要学习如何编写惯用代码,任何关于函数式编程语言的书籍/资源就足够了(例如, RWHLYAH);命令式思维和功能性思维之间的差异总是在那里解释。

在动态语言中,Jeff Foster 的链接是一个很好的集合; here是 JavaScript 中记忆化的一种非常巧妙的使用,可以被认为是一种“设计模式”。

关于functional-programming - 函数式、动态和面向方面的编程模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1728160/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com