Einen Typ-Synonym-Typ herausfinden

8

Ich habe ein Typ-Synonym in Haskell gemacht:

%Vor%

Dann habe ich seinen Typ überprüft:

%Vor%

Natürlich weiß ich, dass Foo a ein Typ-Synonym für [a] ist, seit ich es gerade geschrieben habe.

Aber wenn ich eine Bibliothek verwende, die Foo Integer zurückgibt, woher soll ich wissen, was Foo ist?

Ich habe :t Foo ohne Erfolg versucht.

    
Kevin Meredith 07.09.2014, 13:46
quelle

1 Antwort

16

Versuchen Sie Folgendes: :i Foo

:i gibt Informationen über ein gebundenes Symbol.
:t gibt die Typunterschrift für Ausdrücke an. (Deshalb funktionierte es nicht für dich - Foo ist kein Ausdruck, wie eine Funktion oder ein Wert).

Beispiel:

%Vor%

Und hier ist Bonusinformation:

:i ist auch toll für ADTs, es gibt Ihnen die Konstruktoren und sagt Ihnen, welche Instanzen sie ableiten (natürlich von den importierten Modulen). Zum Beispiel:

%Vor%

Und es ist auch toll für Typklassen, zum Beispiel:

%Vor%

Und, wie erwähnt, kann auch für Funktionen verwendet werden:

%Vor%

Es ist fast genau wie :t , nur dass es Ihnen auch sagt, in welchem ​​Modul das Symbol definiert ist.

Warum also :t ? es ist flexibler. :i funktioniert nur für gebundene Symbole. Z.B. :t (+5) ist gültig. :i (+5) ist nicht.

    
MasterMastic 07.09.2014, 13:49
quelle

Tags und Links