将函数应用于任意长的参数列表

2023-12-27

我想创建一个函数 apply,它接受具有任意数量参数的函数以及整数列表,并返回函数的结果(其中列表中的每个整数都是按顺序排列的参数。

我在想这样的事情:

apply :: ([Int] -> Int) -> [Int] -> Int
apply f x:xs = apply (f x) xs
apply f [] = f

但我知道这行不通,因为类型签名是错误的 - 该函数不接受整数列表,它只接受一些整数参数。

此外,当我到达基本情况时,要应用的 f 参数实际上应该是一个整数,无论​​如何都违反了类型签名。

有谁知道如何处理此类问题?


我想创建一个函数 apply,它接受一个带有任意数量参数的函数以及一个整数列表,

你为什么要这样做?也许你的参数结构应该作为数据结构传递,但到目前为止你已经过度限制了问题以确保它不会产生惯用的 Haskell 解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将函数应用于任意长的参数列表 的相关文章

  • GHC 可以为 monad 转换器派生 Functor 和 Applicative 实例吗?

    我正在尝试实施MaybeT本着mtl图书馆 使用这个非编译解决方案 LANGUAGE FlexibleInstances MultiParamTypeClasses UndecidableInstances import Control M
  • 在 Haskell 中将字节转换为 Int64s/Floats/Doubles

    我正在尝试解析 Haskell 中的二进制文件格式 Apple 的二进制属性列表格式 该格式所需的内容之一是将字节序列视为 a 无符号 1 2 或 4 字节整数 b 有符号 8 字节整数 c 32 位floats d 64 位doubles
  • Haskell,optparse-generic 的未命名命令行参数

    我在用着optparse 通用 https hackage haskell org package optparse generic解析名为的程序的命令行参数example 我有一个带有命名字段的数据类型 记录语法 例如 data Exam
  • 为什么 `boost::any` 比 `void*` 更好?

    有什么先天优势boost any and boost any cast提供超过使用void and dynamic cast 优点是boost any比类型安全得多void E g int i 5 void p i static cast
  • 导入 Haskell 模块

    我是哈斯克尔的新手 为什么当我尝试使用时Days from Data Time我收到此错误 Could not find module Data Time It is a member of the hidden package time
  • 如何让 Show 显示函数名称?

    作为一个让我熟悉 Haskell 的简单练习 在 Youtube 上闲逛并偶然进入美国倒计时游戏节目之后 我想为数字游戏制作一个求解器 你得到 6 个数字 需要将它们与 为了得到给定的结果 到目前为止我所得到的是非常脑死亡的 let ope
  • Haskell scala 互操作性

    我是 Scala 初学者 来自面向对象范式 在了解 Scala 的函数式编程部分时 我被引导到 Haskell 纯函数式编程语言 探索 SO 问题答案 我发现 Java Haskell 具有互操作性 我很想知道 Scala Haskell
  • 在 Haskell 中,为什么我必须在这段代码中使用美元符号?

    我仍在尝试破解这段代码 import Data Char groupsOf groupsOf n xs take n xs groupsOf n tail xs problem 8 x maximum map product groupsO
  • 纯函数怎么能做IO呢?

    我最近了解到莫纳德随机数 http hackage haskell org package MonadRandom 0 1 13 docs Control Monad Random Class html t 3aMonadRandom图书馆
  • 不同功能的容器?

    我正在尝试为不同的函数实现一个容器类 我可以在其中保存函数指针并稍后用它来调用这些函数 我会尝试更准确地描述我的问题 例如 我有两个不同的测试函数 int func1 int a int b printf func1 works i i n
  • 将 num 的签名键入 double?

    我才刚刚开始为你学习 Haskell 以获得伟大的好处 并且我在类型类方面遇到了一些麻烦 我想创建一个接受任何数字类型并强制其为双精度的函数 我的第一个想法是定义 numToDouble Num gt Double 但我认为这不起作用 因为
  • Haskell - 用防护罩替换外壳

    我想知道在这部分代码中是否可以用守卫替换 case 语句 firstFunction String gt Maybe MyType secondFunction MyType gt Integer myFunction String gt
  • “Eta减少”并不总是在Haskell中举行?

    我发现我可以说 LANGUAGE RankNTypes f1 forall b b gt b gt forall c c gt c f1 f id f HLint 告诉我我可以在这里做 Eta 减少 但是 f2 forall b b gt
  • Haskell 中列表列表的笛卡尔积

    给定一个长度列表的列表x所有子列表的长度都相同y 输出y x长度列表x包含每个子列表中的一项 例子 x 3 y 2 1 2 3 4 5 6 Output 2 3 8不同的输出 1 3 5 1 4 5 1 3 6 1 4 6 2 3 5 2
  • 在 Yesod 生态系统中,对某些文本进行 urlencode 的最佳方式是什么?

    我想对一些文本进行 url 编码 例如 用 20 替换每个空格等 我找到了 HTTP Network HTTP Base urlEncode 并且可以使用它 但我想知道是否还有其他通常在 Yesod 生态系统中使用的东西 不幸的是 由于 U
  • 标准的能力

    我发现了一些使用标准的旧例子here http www serpentine com blog 2009 09 29 criterion a new benchmarking library for haskell 看起来好像早在 2009
  • Haskell Stack 从 github 安装包依赖项

    是否可以使用 Haskell 堆栈从 github 安装软件包的版本 例如在一个 cabal or a stack yaml文件 如何在 git repo branch revision 上指向依赖项 对于堆栈 The 的文档stack y
  • 有没有更好的方法将 UTC 时间转换为大纪元时间?

    我想将文件的修改时间设置为从 exif 数据获取的时间 为了从 exif 获取时间 我发现 Graphics Exif getTag Exif gt String gt IO Maybe String 要设置文件修改时间 我发现 Syste
  • QuickCheck是否可以生成任意函数

    我试图为身份编写一个 QuickCheck 测试 f y f y 我最初的计划是编写一个返回函数和整数的任意生成器 具有签名Gen Int gt Int Int 并在prop DollerDoesNothing使用 不使用测试该功能应用程序
  • Haskell 输入返回元组

    我想知道 IO 函数是否可以返回元组 因为我想从这个函数中获取这些元组作为另一个函数的输入 investinput IO gt Char Int investinput do putStrLn Enter Username username

随机推荐

  • xtable 和 header 对齐

    xtable 中的标头对齐是否可能与表的其余部分中使用的对齐不同 就我而言 我希望标题居中对齐 但表格本身应该右对齐 要在 LaTeX 中做到这一点 你可以将标题粘贴到 multicolumn指定您想要的对齐方式的东西 begin tabu
  • 无法在 php 邮件中显示法语口音

    我有以下 php 脚本根据返回的参数发送一封电子邮件
  • 必需但可能未定义的类型

    我想在 TypeScript 中创建一个类 它以一种需要具有该接口的所有属性 甚至是可选属性 的方式实现一个接口 但允许将可选属性undefined This is Required ish
  • 在开发模式下未获得查看错误的调试输出

    这很奇怪 目前 我的视图中有某种错误 但看不到它是什么 此外 Web 服务器跟踪中没有调试输出 Rails 3 2 2 应用程序是 2 7 10 的升级版 我使用 thin 作为我的开发服务器 当错误发生在其他地方时 我确实得到了正常的调试
  • Subversion 网络界面 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我最近在 Linux 服务器上安装了 Subversion CentOS http en wikipe
  • 使滚动条不占用空间/防止布局移动

    我正在使用 html 制作一个应用程序 并且需要有一个滚动条 但每当我添加一个时 它都会将所有内容转移到滚动条所需的必要空间 这会搞乱应用程序的布局 因此 我需要一种方法使滚动条简单地覆盖在页面顶部 这意味着页面仍然位于其后面 我已经知道如
  • 用Java从图像文件中读取文本[重复]

    这个问题在这里已经有答案了 可用于从图像 JPEG PNG 文件中提取文本的最佳开源 Java 库是什么 There s GOCR http jocr sourceforge net and 超正方体 http code google co
  • Oracle:使用 Toad 设置 SERVEROUTPUT ON

    I put 将服务器输出设置为大小无限格式包裹 in 登录SQL but Toad貌似没有采用这个配置 换句话说 以下 PL SQL 不会打印输出 BEGIN DBMS OUTPUT PUT LINE Hello World END 如何让
  • Rails 4:将控制器分组到文件夹中

    我想将所有控制器及其视图分组到文件夹中 例如在 admin 下 这就是我所做的 1 我把所有的都搬走了controllers在一个文件夹下admin 2 我把所有的都搬走了views在一个文件夹下admin 3 我在 Rails Guide
  • 模块扩展中不允许导出和导出分配

    import Request as ExpressRequest Response as ExpressResponse from express declare module kvl export kvl declare const kv
  • ASP.NET 中的安全随机数

    据我所知 Random 被初始化为当前时间 如果两个连接在同一秒内命中 我应该得到相同的两个随机数 对于一个大型网站来说这是可能的 锁定不好 我该如何解决 注意 该数字用于会话 ID 编辑 我被困在使用长 缩短128位GUID感觉不对 而不
  • 在引号外用逗号分割

    我的程序从文件中读取一行 该行包含逗号分隔的文本 例如 123 test 444 don t split this more test 1 我希望分割的结果是这样的 123 test 444 don t split this more te
  • 无法在 mysql 中设置线程堆栈大小

    我正在努力增加线程堆栈 https dev mysql com doc refman 5 7 en server system variables html多变的 我可以使用命令行选项成功完成此操作 如下所示 usr sbin mysqld
  • Angular 双向数据绑定并观察父组件的变化

    使用双向数据绑定时 似乎无法观察父组件的变化 我有一个用于收集标签列表的自定义输入组件 双向数据绑定在此组件与其父组件之间设置并运行 the parent component is just a form here is how I m a
  • Bootstrap Modal 位于 Chrome 的背景后面

    我正在使用 Twitter Bootstrap CSS 和 JS 问题来自 Modal 插件 它在 Firefox 和 IE 上工作正常 但在 Chrome 中显示很差 Modal 成功弹出 但隐藏在模态背景后面 这意味着无法填写表单或查看
  • 如何在 Mac 上构建和安装 Valgrind?

    我在 Mac OS X 上使用 codeblocks 10 05 我下载了 Valgrind 并解压了一个文件夹 我完全迷失了方向 不知道如何构建它 我不知道任何终端 控制台命令 并且通常是编程新手 所以我不知道如何 构建 或 编译 它 我
  • 如何使用python删除目录中所有pdf文件的密码?

    我的目录中有一些 pdf 文件 其中一些受密码保护 另一些则不受密码保护 我知道每个受密码保护的文件的密码 如何自动执行从每个 pdf 文件中删除密码的过程 我在想这样的事情 获取受密码保护的文件 尝试从我制作的单词列表中给出的密码 打印出
  • 异步模式 - 在从方法返回某些值之前等待事件

    免责声明 这段代码被简化 很多 以便于阅读 我知道它不符合正常的代码标准 我的问题可以在下面的代码中看到 基本上我有一个解析对象的调用者 我必须等到子组件完成 由事件发出信号 然后才能返回基于子组件上的某些值的值 问题是 对于这种情况 首选
  • 如何使用 FFMPEG 捕获浏览器的选项卡内容

    我正在开发一个项目 需要录制将在不同浏览器选项卡中播放的 HTML5 动画 所以我读了一点 显然可以使用 FFMPEG 来完成 也许使用 gdigrab 设备 https www ffmpeg org ffmpeg devices html
  • 将函数应用于任意长的参数列表

    我想创建一个函数 apply 它接受具有任意数量参数的函数以及整数列表 并返回函数的结果 其中列表中的每个整数都是按顺序排列的参数 我在想这样的事情 apply Int gt Int gt Int gt Int apply f x xs a