2013-06-08 6 views
12

Was ist der Unterschied zwischen Modul, Paket und Bibliothek in Haskell?Was ist der Unterschied zwischen Modul, Paket und Bibliothek in Haskell?

Von http://www.haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html
Prelude: ein Standard-Modul standardmäßig in alle Haskell Module importiert.

Von http://www.haskell.org/haskellwiki/Base_package
Basispaket: Die Basis Paket enthält das Präludium und seine Unterstützung Bibliotheken und eine große Sammlung von nützlichen Bibliotheken von Datenstrukturen im Bereich combinators zu parsen und Dienstprogramme debuggen.

Danke.

Siehe auch: What's the difference between a Python module and a Python package?

+2

Ein * Paket * ist eine Sammlung von * Modulen *, die im Sprachbericht zusammen mit Daten wie Versionen und Beschreibungen erläutert werden. Oft wird ein Paket mit Modulen aufgerufen, die in erster Linie für die Verwendung in anderen Projekten eine * Bibliothek * sind. – gspr

+0

@gspr if * library * ist nur ein anderer Name für * package *, was bedeutet es, wenn ezyang sagt * Cabal unterstützt nur eine einzige öffentliche Bibliothek pro Paket *? [Quelle] (https://www.reddit.com/r/haskell/comments/5j4szk/nyhug_backpack_to_work_towards_backpack_in/dbe2yq3/) –

+0

Was ist mit Haskell Programm? – Adam

Antwort

11

A Modul eine Reihe von Funktionen, Typen, Klassen, ... zusammen in einem gemeinsamen Namensraum.

Eine Bibliothek ist ein Satz von Modulen, der sinnvoll ist, zusammen zu sein und der in einem Programm oder einer anderen Bibliothek verwendet werden kann.

Ein Paket ist eine Einheit der Verteilung, die eine Bibliothek oder eine ausführbare Datei oder beides enthalten kann. Auf diese Weise können Sie Ihren Code mit der Community teilen.

Beachten Sie, dass eine Bibliothek nicht in einem Paket isoliert sein muss. Das heißt, es ist vollkommen akzeptabel, eine Bibliothek in Ihrem Projekt zu haben, die in diesem Projekt verwendet wird. Der Code ist daher aus Gründen der Klarheit und Wartbarkeit vom Rest getrennt. Dies ist auch eine gute Möglichkeit, einen allgemeinen Zweck von Ihrem Geschäftslogikcode zu isolieren, und diese Bibliothek könnte schließlich extrahiert und zwischen Projekten oder mit der Gemeinschaft geteilt werden, falls erforderlich.

+1

Kann ein Paket auch mehrere Bibliotheken enthalten? Kann ein Paket verschiedene Module innerhalb und außerhalb von Bibliotheken enthalten? Wo passen Signaturen und Interface, eingeführt von Backpack? –

+1

"Pakete sind die Dinge auf Hackage" Ein letzter: https://stackoverflow.com/questions/5480982/packages-modules-and-import-in-haskell?rq=1 – Adam

Verwandte Themen