Flipping Sagen definiere ich diese Funktion:Haskell: ein curried Dollar Operator
f = ($ 5)
Dann kann ich es anwenden:
> f (\x -> x^2)
25
Seine Art ist:
:t f
f :: (Integer -> b) -> b
Das macht Sinn Er erhält eine Funktion als Argument und gibt diese Funktion auf die Integer
5
zurück.
Nun definiere ich diese Funktion:
g = flip f
Ich würde erwarten, dass dieses Gefühl nicht machen, weil f
eine Funktion von einem einzigen Argumente ist.
Aber seine Art Prüfung:
:t g
g :: b -> (Integer -> b -> c) -> c
So, jetzt g
ist eine Funktion von zwei Argumenten!
Anwendung auf einige Werte:
> g [2, 4, 6] (\x y -> x:y)
[5,2,4,6]
Was ist hier los? Was bedeutet flip ($ 5)
wirklich?
Danke. Sie haben einen Fehler obwohl. Ich werde dir nicht sagen wo :-) – AmirW