Haskell类型[Integer-> Integer]

时间:2015-03-17 06:29:43

标签: haskell

 y = [\a->a+3, \b->1 , \c->c*c]

我认识到函数y的类型为[Integer-> Integer],意味着它返回函数列表,每个函数取整数然后返回一个整数。但是,我很难弄清楚函数的输入,有人可以给我一个例子吗?

3 个答案:

答案 0 :(得分:5)

没有任何输入。 y不期望任何参数,它只会提供Integer -> Integer类型的函数列表(或更确切地说:Num a => a -> a)。

它如何有用?

嗯,您可以通过多种方式使用它,例如:

>>> let y = [\a->a+3, \b->1 , \c->c*c]
>>> map (\f -> f 3) y
[6,1,9]
>>> sequence y 4
[7,1,16]
>>> head y 10
13

答案 1 :(得分:2)

首先,y的实际类型是Num a => [a -> a],因为整数是多态常量。

其次,y不是一个函数,它是一个列表。它没有任何论据;它的元素呢。或者,如果要将其称为函数,则它具有0个参数并返回列表。

答案 2 :(得分:0)

y不是函数,它是 函数列表。

没有输入。它只是一个功能列表。您可以选择其中一个函数并使用一些输入调用它,但就目前而言,它只是放入列表中的一堆函数。