2009-12-14 6 views
8

Bitte nicht flammend, als Gemeinschaftswiki fragen, damit niemand hier einen Ruf bekommt. Ich weiß, Python ist nicht die erste Sprache, um Listenverständnis zu haben. Ich interessiere mich nur für die Geschichte des Namens.Warum Listenverständnis heißt so in Python?

Ich bin besonders daran interessiert, warum es Verständnis genannt

+0

Wie bodnarbm erwähnt, hat es eine lange Geschichte. Sie finden Listenkomprehensionen in vielen funktionalen Programmiersprachen und ähnliches in der diskreten Mathematik. – Joe

Antwort

8

Der Name stammt aus dem Konzept eines set-comprehension

Auffassungs hier verwendet wird vollständige Einbeziehung oder vollständige Beschreibung bedeuten. Ein Mengenverständnis ist eine (meist kurze) vollständige Beschreibung einer Menge, keine erschöpfende (und möglicherweise unendliche) Aufzählung.

+0

Aber warum wurde Verständnis so genannt? – Davide

+1

"Verständnis" wird hier verwendet, um "vollständige Einbeziehung" oder "vollständige Beschreibung" zu bedeuten. Ein Mengenverständnis ist eine (meist kurze) vollständige Beschreibung einer Menge, keine erschöpfende (und möglicherweise unendliche) Aufzählung. Das Mengenverständnis "{x∈N: x> 2}" ist die unendliche Menge aller natürlichen Zahlen größer als 2. (Per Konvention ist ein Großbuchstabe 'N' definiert als die Menge natürlicher Zahlen, '∈' bedeutet " ist der Satz ", ':" bedeutet "so dass", und die' {} 'bedeutet "set".) –

+1

Und jetzt hat Python die Listenverständnis Syntax zu Sätzen verallgemeinert! – dan04

1

Die Geschichte Abschnitt der Wikipedia-Seite bespricht ein wenig auf, wo es herkam. List_comprehension#History

+1

Aber es sagt nicht, warum –

+2

Dies ist eine Programmierseite! bodnarbm macht das richtige für die Maximierung der Wiederverwendung durch die Zusammensetzung des Wikipedia-Artikels. Oder so. – Joe

+2

Und genau genommen lautet die Antwort auf "Warum Listenverständnis heißt so in Python?" ist "weil es in anderen Sprachen so heißt". – Joe

1

Weil es eine sehr umfassende Weg ist, eine Sequenz zu beschreiben (eine Menge in Mathematik und anderen Sprachen und eine Liste/Sequenz in Python).

3

"Verstehen" bedeutet nicht nur "Verstehen", sondern "Inklusion" in der Logik. Oxford English Dictionary hat das folgende: "I.4. Logic Die Summe der in einem Begriff oder Konzept begriffenen Attribute; Intension" als die vierte Unterdefinition unter der ersten Definition, "Inklusion, umfassend." Ich wäre nicht überrascht zu erfahren, dass die Verwendung in die Geschichte der Mathematik überging. In einer Liste oder einem Satzverständnis beschreibt der Programmierer, anstatt die Elemente der Liste oder Menge explizit anzugeben, was er (im Sinne von "include") mit einem Ausdruck versteht.