function - 如何在 haskell 中使用参数内部的函数?

标签 function haskell arguments

我正在解决一个问题,要求编写一个函数,将函数应用于整数并计算答案。问题是这样的:

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

有人知道该怎么做吗?我将非常感激。

最佳答案

这称为高阶函数

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

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

关于function - 如何在 haskell 中使用参数内部的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19598675/

相关文章:

debugging - Haskell 程序输出 `<<loop>>`

python - 是否可以使用未指定数量的参数的 python 函数?

php - 将当前菜单项类添加到 wordpress 菜单模板

PHP mysql_real_escape_string() : Access denied for user 'www-data' @'localhost'

javascript - NodeJS如何加速这个数组创建功能

haskell - 尝试用 Haskell 构建词法分析程序

list - 关于 Haskell 中的 Church 编码列表

javascript - JQuery:将参数传递给插件以限制代码执行

c++ - 将 byte[] 数组作为方法的多个参数传递

python - 函数 open() 在 Visual Studio Code 中不起作用