y = [\a->a+3, \b->1 , \c->c*c]
我认识到函数y的类型为[Integer-> Integer],意味着它返回函数列表,每个函数取整数然后返回一个整数。但是,我很难弄清楚函数的输入,有人可以给我一个例子吗?
答案 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
不是函数,它是 函数列表。
没有输入。它只是一个功能列表。您可以选择其中一个函数并使用一些输入调用它,但就目前而言,它只是放入列表中的一堆函数。