La forme curryfiée du type de la fonction (a, b) -> c -> (a -> b -> c) est :
a -> b -> c -> (a, b) -> c
Explication : En curryfiant la fonction, nous transformons les deux premiers arguments de type a et b en deux arguments de type a et b chacun, et nous déplaçons le dernier argument de type c à la fin de la fonction.
La forme curryfiée du type de la fonction (a -> b -> c) -> (b -> a -> c) est :
(a -> b -> c) -> b -> a -> c
Explication : En curryfiant la fonction, nous transformons les deux arguments de type a et b en deux arguments distincts de type a et b, et nous déplaçons le dernier argument de type c à la fin de la fonction.
Le type curryfié de la fonction suivante : a -> b -> (a, b) est :
a -> b -> (a, b)
Explication : La fonction prend deux arguments de types a et b et renvoie un tuple contenant ces deux arguments.
La forme curryfiée du type de la fonction (a -> b -> c) -> a -> b -> c est :
(a -> b -> c) -> a -> (b -> c)
Explication : En curryfiant la fonction, nous transformons le deuxième et le troisième argument de type a et b en deux arguments distincts de type a et b, respectivement, et nous déplaçons le dernier argument de type c à la fin de la fonction.
Le type curryfié de la fonction suivante : (a, b, c) -> d -> (a -> b -> c -> d) -> d est :
a -> b -> c -> d -> (a, b, c) -> d
Explication : En curryfiant la fonction, nous transformons les quatre premiers arguments de types a, b, c et d en quatre arguments distincts de types a, b, c et d, respectivement, et nous déplaçons le dernier argument de type (a, b, c) à la fin de la fonction.
Le type curryfié de la fonction suivante : (a -> b -> c) -> (b -> a -> c) est :
(a -> b -> c) -> b -> a -> c
Explication : En curryfiant la fonction, nous transformons les deux arguments de type a et b en deux arguments distincts de types a et b, respectivement.
La forme curryfiée du type de la fonction a -> (a -> b) -> b est : a -> (a -> b) -> b
La fonction prend deux arguments de types différents, donc nous avons besoin de deux flèches. En curryfiant la fonction, nous avons une première flèche qui correspond à l'argument de type a et une deuxième flèche qui correspond à la fonction de type a -> b. La sortie de la fonction est de type b.
La forme curryfiée du type de la fonction (a -> b) -> (b -> c) -> a -> c est : (a -> b) -> (b -> c) -> a -> c
La fonction prend trois arguments de types différents, donc nous avons besoin de trois flèches. En curryfiant la fonction, nous avons la première flèche qui correspond à la première fonction de type a -> b, la deuxième flèche qui correspond à la deuxième fonction de type b -> c, et la troisième flèche qui correspond à l'argument de type a. La sortie de la fonction est de type c.
Le type curryfié de la fonction suivante a -> (a -> b -> c) -> b -> c est : a -> (a -> b -> c) -> b -> c
La fonction prend trois arguments de types différents, donc nous avons besoin de trois flèches. En curryfiant la fonction, nous avons la première flèche qui correspond à l'argument de type a, la deuxième flèche qui correspond à la fonction de type a -> b -> c, et la troisième flèche qui correspond à l'argument de type b. La sortie de la fonction est de type c.
La forme curryfiée du type de la fonction (a, b) -> (a -> b -> c) -> c est : (a, b) -> (a -> b -> c) -> c
La fonction prend deux arguments de types différents, donc nous avons besoin de deux flèches. En curryfiant la fonction, nous avons la première flèche qui correspond au premier argument de type a, b, et la deuxième flèche qui correspond à la fonction de type a -> b -> c. La sortie de la fonction est de type c.