【发布时间】:2009-12-14 22:32:11
【问题描述】:
我知道 python 不是第一个具有列表理解的语言。 我只是对这个名字的历史感兴趣。
我特别感兴趣的是为什么它被称为comprehension
【问题讨论】:
-
正如 bodnarbm 所提到的,它有着悠久的历史。您会在许多函数式编程语言中找到列表推导式,在离散数学中也有类似的东西。
标签: python naming-conventions list-comprehension
我知道 python 不是第一个具有列表理解的语言。 我只是对这个名字的历史感兴趣。
我特别感兴趣的是为什么它被称为comprehension
【问题讨论】:
标签: python naming-conventions list-comprehension
名字来源于set-comprehension的概念
理解在这里表示完全包含或完整描述。集合理解是对集合的(通常是简短的)完整描述,而不是详尽的(并且可能是无限的)枚举。
【讨论】:
“理解”过去不仅意味着“理解”,还意味着逻辑中的“包含”。牛津英语词典有以下内容:“I.4. 逻辑概念或概念中包含的属性的总和;内涵”作为第一个定义“包含,包含”下的第四个子定义。得知这种用法通过那里进入了数学史,我不会感到惊讶。在列表或集合理解中,程序员不是显式给出列表或集合的元素,而是用表达式描述他们所理解的(在“包含”意义上)。
【讨论】:
https://www.merriam-webster.com/dictionary/comprehend
3 - 通过构造或暗示包含
【讨论】:
维基百科页面的历史部分讨论了它的来源。 List_comprehension#History
【讨论】:
因为它是描述序列(数学和其他语言中的集合,Python 中的列表/序列)的一种非常全面的方式。
【讨论】: