gpt4 book ai didi

data-structures - 为什么 100 个函数对一种数据结构进行操作比 10 个函数对 10 个数据结构进行操作更好

转载 作者:行者123 更新时间:2023-12-03 05:35:46 25 4
gpt4 key购买 nike

我在很多地方都看到过这句话:

"It is better to have 100 functions operate on one data structure than 10 functions on 10 data structures." —Alan Perlis

但我从未见过它解释为什么这是真的。您是否应该尝试从第一个数据结构派生出其他 9 个数据结构以避免重复数据?我觉得我错过了一些背景。

最佳答案

引用自 Alan Perlis 的 Epigrams on Programming ,发表于 1982 年。

这句话的含义在 Lisp 中得到了很好的体现。 ,其中有大量专门操作和处理列表的函数,您可以仅使用列表和对列表进行操作的各种函数来完成很多工作,这使得它们比任何单个列表都更强大-目的数据结构。

Lua ,再举一个例子,uses tables to simulate classes 。为什么要使用表来创建对象,而不是像面向对象语言那样创建语言级的类和对象?由于您的对象现在是一个表,因此您可以免费使用为对象上的表定义的任意数量的函数!更好的是,我们不必使用特定于类的语法来扰乱语言,也不必从表中重新定义我们想要为类使用的函数。

Perlis所说的绝对是Lisp和functional programming中的一个突出的思维模式。一般来说。一个数据结构上的这 100 个函数可以通过许多独特的方式组合在一起,因为它们都在相同的数据结构上运行,但你不能真正混合 10 个数据结构上的 10 个函数,因为它们只是定义的研究他们特定的数据结构。

一个更现代、更简单的变体是根据抽象进行思考。如果我们用 Java 编码,您愿意在 List 上编写 100 个函数吗?接口(interface),或者同一套十个函数,一次用于ArrayList,一次用于LinkedList,一次用于....

关于data-structures - 为什么 100 个函数对一种数据结构进行操作比 10 个函数对 10 个数据结构进行操作更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6016271/

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