Wenn Sie pointfree
auf den Code \b t f -> if b then t else f
verwenden, erhalten Sie die Antwort if'
.Wo ist Haskell's if 'Funktion?
Wo ist if'
definiert?
Wenn Sie pointfree
auf den Code \b t f -> if b then t else f
verwenden, erhalten Sie die Antwort if'
.Wo ist Haskell's if 'Funktion?
Wo ist if'
definiert?
Nach Hayoo, wird es in den folgenden drei Pakete definiert:
if' :: Bool -> a -> a -> a
if-then-else
als Funktion.
Beispiel:
if' (even n) "even" $
if' (isPrime n) "prime" $
"boring"
Wenn True
dann der erste Wert, sonst die zweite.
Die beiden wichtigsten Suchmaschinen für Haskell, die ich kenne sind Hoogle und Hayoo.
Es ist erwähnenswert, dass die if'
Funktion in base
seit Version 4.7 existiert, aber es ist bool
genannt (in der Art mit either
und maybe
).
bool :: a -> a -> Bool -> a
bool f _ False = f
bool _ t True = t
ist definiert in Data.Bool
.
Beachten Sie, dass dies den "else" Zweig vor dem "then" Platz nimmt. Dies ist damit konsistent mit anderen Katamorphismus-Buildern wie 'vielleicht' und' entweder', die ihre Argumente in der Reihenfolge der Konstruktor-Deklaration nehmen . – chi
Ah ja. Vielen Dank. Ich versuchte es mit hoogle, kam aber leer heraus. – Ana
Hayoo hat normalerweise bessere Suchergebnisse als Hoogle. –
[FP Complets Hoogle] (https://www.fpcomplete.com/hoogle) ist das Beste aus beiden Welten :-) – luqui