Wie kann ich den Implementierungscode für "und" sehen?

7

Ich habe die Definition für und im Internet gefunden, aber ich konnte die tatsächliche Implementierung von und nicht finden. Ich habe nach einer Art Präludium-Haskell-Datei auf meinem Computer gesucht, aber es gab nichts zurück, was in einem Texteditor geöffnet werden konnte.

    
Lethi 22.09.2012, 14:51
quelle

3 Antworten

19

Sie können Hoogle verwenden, um nach Haskell-Funktionen zu suchen:

Ссылка

Die Funktionslinks führen Sie zu dem Bibliotheksmodul, in dem die Funktion definiert wurde, und in diesem Fall führt uns der Link für and hierher:

Ссылка

Sie klicken dann auf den Link Source rechts neben dem Funktionsnamen und Sie gelangen zur Quelle dieser Funktion. Für den Fall von and verbindet es uns hier:

Ссылка

%Vor%

Sie werden sehen, dass and tatsächlich zwei Definitionen hat. Eine davon ist die Standard-Prelude-Definition, die nur aktiviert wird, wenn Sie mit dem USE_REPORT_PRELUDE -Flag kompilieren, und die andere ist die Definition, mit der das Prelude normalerweise kompiliert wird, die normalerweise optimiert ist.

    
Gabriel Gonzalez 22.09.2012, 14:57
quelle
2

Sie können nicht erwarten, den Quellcode in Ihrer lokalen Haskell-Distribution zu finden - was wahrscheinlich die Haskell-Plattform ist. Rufen Sie stattdessen Hoogle auf und suchen Sie nach der Funktion. Eine Möglichkeit, die Sie suchen, besteht darin, nach dem Namen and zu suchen, zu seinem Haddock zu gehen und dann auf "source" zu klicken.

In Hoogle können Sie auch nach Typ-Signatur suchen, d. [Bool] -> Bool , die Sie wahrscheinlich oft tun werden.

    
Sarah 22.09.2012 14:57
quelle
1

Sehen Sie sich Ссылка

an

and ist definiert als foldr (&&) True .

    
duri 22.09.2012 14:54
quelle

Tags und Links