2017-11-16 2 views
6

Ich bin ein Neuling zu Haskell und ich weiß, dass die Haskell-Standard-Bibliothek in modules aufgeteilt ist, jeder von ihnen enthält functions und types, die irgendwie verwandt sind und dienen einem gemeinsamen Zweck. Ich würde gerne die Implementierung (Code) dieser Bibliotheksfunktionen sehen. Wo kann ich das sehen? Gibt es irgendeinen Befehl in ghci, damit ich die Implementierung sehen kann oder mir irgendwelche Ressourcen zur Verfügung stellen, um über Module zu lernen. Vielen DankWie sieht man den implementierten Code einer Funktion eines Moduls in Haskell?

+2

Überprüfen Sie es aus Hackage. Zum Beispiel ist dies [Data.Vector] (https://hackage.haskell.org/package/vector-0.12.0.1/docs/Data-Vector.html) Paket. Jede erläuterte Funktion, Instanz oder Datendefinition enthält auch einen #Source-Link ganz rechts in der entsprechenden Zeile. – Redu

Antwort

4

Wahrscheinlich der bequemste Weg, es zu tun, ist die Verwendung Hackage. Sie können beispielsweise die Funktion map überprüfen, indem Sie auf der rechten Seite der Funktionssignatur auf Source klicken. Dies wird dann das markierte Codefragment anzeigen. Zum Beispiel:

map :: (a -> b) -> [a] -> [b] 
{-# NOINLINE [0] map #-} 
    -- We want the RULEs "map" and "map/coerce" to fire first. 
    -- map is recursive, so won't inline anyway, 
    -- but saying so is more explicit, and silences warnings 
map _ []  = [] 
map f (x:xs) = f x : map f xs 

Sie auch Hoogle können Funktionen nach Name oder eine Unterschrift suchen, indem die Ergebnisse klicken, werden Sie auf die entsprechende Hackage Seite weitergeleitet.

Verwandte Themen