I am confused about one particular example of the const
function. So the type declaration const :: a -> b->a
states that the function accepts two parameters of type a
and b
and returns a type a
. For example:
const 5 3 => 5
const 1 2 => 1
This makes sense based on the declaration. However, I ran into this specific example:
const (1+) 5 3 => 4
This makes me question my understanding of the function declaration. I know this function only takes two parameters because I tried:
const 1 5 3
Now this reassures to me that it only takes 2 parameters. So how does this work? Is the (1+)
not a parameter? If not, what is it?
const (1+) 5 3 => 4
a
can be any type and theb
gets ignored. A specific case could be(a -> a -> a) -> b -> (a -> a -> a)
. Theb
gets ignored and returned is a functiona -> a -> a
waiting for two new inputs. – JohEker(1+)
is a single parameter but it can also accept one parameter which means it's a function.const
returns it and it, quite naturally accepst a parameter (the third one,3
in your example) – Redu