Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell类型[整数->整数]_Haskell - Fatal编程技术网

Haskell类型[整数->整数]

Haskell类型[整数->整数],haskell,Haskell,我知道函数y的类型是[Integer->Integer],这意味着它返回函数列表,每个函数取整数,然后返回一个整数。但是,我很难理解函数的输入,有人能给我举个例子吗?首先,y的实际类型是Num a=>[a->a],因为整数是多态常数 第二,y不是一个函数,它是一个列表。它不接受任何论据;它的元素确实如此。或者,如果您想将其称为函数,它有0个参数并返回一个列表。没有任何输入。y不需要任何参数,它只提供Integer->Integer类型的函数列表,或者更准确地说:Num a=>a->a 它怎么会有

我知道函数y的类型是[Integer->Integer],这意味着它返回函数列表,每个函数取整数,然后返回一个整数。但是,我很难理解函数的输入,有人能给我举个例子吗?

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

第二,y不是一个函数,它是一个列表。它不接受任何论据;它的元素确实如此。或者,如果您想将其称为函数,它有0个参数并返回一个列表。

没有任何输入。y不需要任何参数,它只提供Integer->Integer类型的函数列表,或者更准确地说:Num a=>a->a

它怎么会有用呢

你可以用很多方法,比如:

 y = [\a->a+3, \b->1 , \c->c*c]
y不是一个函数,它是一个函数列表

没有输入。这只是一个函数列表。您可以选择其中一个函数并通过一些输入调用它,但就目前情况而言,它只是一组已放入列表中的函数。

什么使您认为y是一个函数?
>>> 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