Wann kann ich eine Funktion an einen anderen Namen binden?

9

Wenn Sie im Interpreter arbeiten, ist es oft praktisch, eine Funktion an einen Namen zu binden, zum Beispiel:

%Vor%

Dies aliasiert den Namen f auf die Funktion (+1) . Einfach.

Das funktioniert jedoch nicht immer. Ein Beispiel, das ich gefunden habe, was einen Fehler verursacht, ist der Versuch, nub vom Modul Data.List zu aliasieren. Zum Beispiel

%Vor%

Wenn ich jedoch explizit das Argument x anführe, funktioniert es ohne Fehler:

%Vor%

Kann jemand dieses Verhalten erklären?

    
Chris Taylor 28.12.2011, 12:24
quelle

1 Antwort

3

Typ Standardregeln in aktuellen Ghci-Versionen sind etwas undurchschaubar.

Sie können eine Typ-Signatur für f angeben. Oder fügen Sie :set -XNoMonomorphismRestriction zu Ihrer ~/.ghci -Datei hinzu, wie zuvor von Chris empfohlen.

    
Mischa Arefiev 28.12.2011, 14:36
quelle