[ACCEPTED]-What type of math is this: a -> b -> c-monads

Accepted answer
Score: 10

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).

Score: 5

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)

Score: 4
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.

Score: 2

Functions of type a->b->c, which are actually chains 2 of functions like you said, are examples 1 of Currying

More Related questions