[ACCEPTED]-What type of math is this: a -> b -> c-monads
Type declarations are not associative, a -> (b -> c)
is 4 not equivalent to (a -> b) -> c
. Also, you can't "switch" the 3 arrows, a <- b <- c
is not valid syntax.
The usual reference 2 to associativity is in this case that ->
it 1 right associative, which means that a -> b -> c
is interpreted as a -> (b -> c)
.
Speaking broadly this falls into the realm 6 of Lambda Calculus.
Since this notation has to do with types 5 of functions type inference might be of interest to you 4 as well.
(The wrong assumptions you made 3 about associativity should already be cleared 2 up sufficiently by the other answers so 1 i will not reiterate that)
a -> (b -> c)
and
(a -> b) -> c
are not equivalent in Haskell. That is 9 type theory which can be founded in category 8 theory.
The former is a function taking an 7 argument of type a
and returning a function 6 of type b -> c
. While the latter is a function 5 taking a function of type a -> b
as argument and 4 returning a value of type c
.
What do you mean 3 by the complement of a function? The type 2 of the inverse function of a function of 1 type a -> (b -> c)
has the type (b -> c) -> a
.
Functions of type a->b->c
, which are actually chains 2 of functions like you said, are examples 1 of Currying
More Related questions
We use cookies to improve the performance of the site. By staying on our site, you agree to the terms of use of cookies.