Hi Will,

If you think about currying <https://en.wikipedia.org/wiki/Currying> it
starts to make more sense — at least that worked for me:

In add = x + y, for example,  add 2 + 40 actually returns 42 (an Int) but add
2 returns function that takes one argument (Int -> Int).

In other words: add takes only one argument, and returns a function that
waits for the next argument… so Int -> Int -> Int If you pass just the
first Int, it returns Int -> Int:

> add x y = x + y
<function> : number -> number -> number
> addTwo = add 2
<function> : number -> number
> add 40 2
42 : number
> addTwo 40
42 : number

Does that make sense?

Eduardo Cuducos
http://cuducos.me

On Mon, Feb 13, 2017 at 4:42 PM Will Tian <will.w.t...@gmail.com> wrote:

Hi,

I am having trouble understanding the -> syntax in elm.

For example

if we have the function:

plusTwo x = x + 2

it's type definition will be as follows:
<function> : number -> number

this is pretty straight forward

however, if we have the function

add x y = x + y

its type definition is:
<function> : number -> number -> number

why is it not

<function> number number -> number?

What does -> denote exactly.

Thanks in advance.

-- 
You received this message because you are subscribed to the Google Groups
"Elm Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to elm-discuss+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups "Elm 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elm-discuss+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to