rev a b = b a
ich es einfach nicht bekommen, warum diese Funktion den t -> (t -> t1) -> t1
Typen hat?Warum ist die Art der folgenden Funktion t -> (t -> t1) -> t1
rev a b = b a
ich es einfach nicht bekommen, warum diese Funktion den t -> (t -> t1) -> t1
Typen hat?Warum ist die Art der folgenden Funktion t -> (t -> t1) -> t1
b a
ist die Anwendung der Funktion b
zum argu ment a
. Das ist alles, was der Compiler ableiten kann, was a
und b
sind, also weist er dem Typ des Arguments dieser Funktion und dem Rückgabetyp dieser Funktion die Namen t
und t1
zu und sagt, dass rev
ein Argument und eine Funktion braucht Dieses Argument und gibt das Ergebnis der Anwendung zurück.
Start mit der rechten Seite: Sie gelten a
-b
- so b
Bedarf eine Funktion sein Typ (es irgendeine Art a -> b
haben muss) (lass es b :: t -> t1
nennen) und a
hat mit dieser kompatibel sein - a :: t
bedeutet, dass kein der resultierende Typ, wenn offensichtlich b
‚s codomain (t1
hier)
Welchen Typ hätten Sie erwartet? – Bergi