Type of an expression in haskell -


i'm new haskell , i'm having little bit of trouble understanding of concepts of language.

i have following expression:

\f x → (f x,f 1)

and understanding, can that:

  • at first, can't f because have no information, can anything.

    then judging application of (f x) can it's function of type a->b x::a

    then judging application of (f 1) can of type integer, therefore x same type

then don't understand why whole expression of type:

(integer → b) → integer → (b, b)

i have little guess , i'm going that:

(integer → b) type of function f, receives , integer , returns type b

integer type of x

(b b) type of 2 functions called?

can point me in right direction please? thank you

you correct.

since f applied 1 :: integer, f :: integer -> b.

and since f applied x, x :: integer.

and since result of lambda tuple of applications of f, result type (b, b).

so type of lambda function takes of type of f function takes integer tuple of (b, b).

edit

c b = b 

assume b :: t1.

since a applied b, can a :: t1 -> t.

since c takes of type of b (t1) of type of a (t1 -> t) result of application of a b (t), can c :: t1 -> (t1 -> t) -> t.


Comments

Popular posts from this blog

Command prompt result in label. Python 2.7 -

javascript - How do I use URL parameters to change link href on page? -

amazon web services - AWS Route53 Trying To Get Site To Resolve To www -