你如何在haskell中的参数内使用函数?

时间:2013-10-25 20:13:56

标签: function haskell arguments

我遇到的问题是要求编写一个将函数应用于Integer并计算答案的函数。这是问题所在:

声明类型并定义一个函数,它接受一个函数(比如f)和一个整数(比如说n)并返回f 0 + f 1 + f 2 + ... + f n。例如,fun sq 5将返回55,即0 + 1 + 4 + 9 + 16 + 25(“sq”表示“square”)。

有谁知道怎么做?我非常感激。

1 个答案:

答案 0 :(得分:4)

这称为高阶函数

fun :: (Int -> Int) -> Int -> Int
fun f n = ???

我们只是像正常函数一样使用f,编写f 0或其他什么。 ???是

的haskell翻译
 f 0 + f 1 + ... + f n

至于如何做到这一点,这看起来像是家庭作业,所以我只是暗示你要看看使用[0..n]获取从0到n的列表和

map :: (Int -> Int) -> [Int] -> [Int] -- restricting for clarity

将函数应用于列表中的每个项目(嘿,它是另一个更高阶函数)

sum :: [Int] -> Int

将列表中的所有数字相加。