Haskell 函数名中 ' 的含义?

2023-11-27

什么是报价'用于?我已经阅读了有关柯里化函数的内容,并阅读了定义 add 函数的两种方法 - 柯里化和非柯里化。咖喱版本...

myadd' :: Int -> Int -> Int
myadd' x y = x + y

...但即使没有引号,它也同样有效。那么这有什么意义呢?'?


这句话对哈斯克尔来说毫无意义。它只是该函数名称的一部分。

人们倾向于将其用于“内部”功能。如果您有一个使用累加器参数对列表求和的函数,则您的 sum 函数将采用两个参数。这很丑,所以你做了一个sum'两个参数的函数,和一个sum一个 arg 的函数就像sum list = sum' 0 list.

编辑,也许我应该只显示代码:

sum' s [] = s
sum' s (x:xs) = sum' (s + x) xs

sum xs = sum' 0 xs

你这样做是为了sum'是尾递归的,因此“公共 API”看起来很漂亮。

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

Haskell 函数名中 ' 的含义? 的相关文章

  • 如何为强制长度为 2^n 的向量类型定义可用的 Applicative 实例

    对于某些应用程序 我需要长度为 2 n 的向量 为了强制某些操作的长度匹配 我使用 ist 应用实例定义了我的类型 如下所示 LANGUAGE GADTs DataKinds FlexibleInstances FlexibleContex
  • 如何从 haskell 中的 IOError 获取 errno?

    我在 haskell 平台上 GHC 6 12 1 作为 apt get 安装在 Debian Squeeze 上 鉴于我需要在与最初引发它的线程不同的线程上使用它 如何从 IOError 中获取底层 errno 我需要这个的原因是因为我正
  • 在 Haskell 中计算移动平均线

    我正在学习 Haskell 所以我尝试实现移动平均函数 这是我的代码 mAverage Int gt Int gt Float mAverage x a fromIntegral k fromIntegral x k lt rawAvera
  • Haskell 中的实例声明

    我有这两个功能 primes sieve 2 where sieve p xs p sieve x x lt xs x mod p gt 0 isPrime number number 1 null x x lt takeWhile x g
  • 在 Haskell 中增长数组

    我想在 Haskell 中实现以下 命令式 算法 给定一个序列对 e0 s0 e1 s1 e2 s2 en sn 其中 e 和 s 部分不一定是自然数不同的是 在每个时间步都会随机选择该序列的一个元素 例如 ei si 并根据 ei si
  • Haskell:是的,没有类型类。为什么是整数?

    我有一个关于 GHCi 如何假定整数类型的问题 我正在阅读 Learn you a Haskell 是 否类型的课程 如果您想阅读全文 这里有一个链接 http learnyouahaskell com making our own typ
  • 在 Clojure 和其他 Lisp 方言中,在函数名称末尾使用星号的约定是什么?

    请注意 我不是在谈论符号名称中的耳罩 这个问题在Clojure 常量的约定 样式和用法 https stackoverflow com questions 3579063 conventions style and usage for cl
  • 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
  • Haskell / GHC - 是否有“警告不完整模式”的中缀标签/编译指示

    我正在寻找一个可以对特定的不完整模式发出警告的编译指示 它会使编译器失败并显示以下 假设的 代码 FAILIF incomplete patterns f Int gt Int f 0 0 我正在尝试使用 Arrows 编写一个 编译器 并
  • Haskell 中的尾递归字符串分割

    我正在考虑分割字符串的问题s在一个字符处c 这表示为 break c s 其中 Haskell 库定义break c 足够接近 br br s h t if c h then s else let h t br t in h h t 假设我
  • 用于遇到 [...] 的 Haskell Parsec 解析器

    我正在尝试使用 Parsec 在 Haskell 中编写一个解析器 目前我有一个可以解析的程序 test x 1 2 3 end 执行此操作的代码如下 testParser do reserved test v lt identifier
  • 你能识别 Haskell 程序中的无限列表吗? [复制]

    这个问题在这里已经有答案了 可能的重复 如何判断列表是否是无限的 https stackoverflow com questions 7371730 how to tell if a list is infinite 在Haskell中 你
  • Haskell:IORef 的性能

    我一直在尝试在 Haskell 中编码一个需要使用大量可变引用的算法 但与纯粹的惰性代码相比 它 也许并不奇怪 非常慢 考虑一个非常简单的例子 module Main where import Data IORef import Contr
  • Objective-C 中是否有命名初始化方法的约定?

    在可以通过不同的 init 方法初始化的 Objective C 类中 将所有初始化程序共用的初始化代码收集到一个从其他 init 方法 有时也从从 Nib 唤醒 是否有关于如何命名该方法的约定 初始化器 初始化公共 根据 Apple 的说
  • Haskell 输入返回元组

    我想知道 IO 函数是否可以返回元组 因为我想从这个函数中获取这些元组作为另一个函数的输入 investinput IO gt Char Int investinput do putStrLn Enter Username username
  • 我该如何实现这个折叠功能呢?

    给出了两种数据类型 颜色 和 植物 data Color Red Pink White Blue Purple Green Yellow deriving Show Eq data Plant Leaf Blossom Color Stal
  • Haskell Data.Decimal 作为 Aeson 类型

    是否可以解析一个数据 十进制 https hackage haskell org package Decimal 0 4 2 docs Data Decimal html使用 Aeson 包从 JSON 获取 假设我有以下 JSON foo
  • 如何在Haskell中实现词法分析器和解析器

    我在这里得到了这段代码 它是用Haskell结构的命令式编程语言编写的程序 所以问题是 我如何为这种语言实现词法分析器和解析器 该程序被定义为一系列语句有 6 种类型 goto write stop if goto 和 int int n
  • 如何打乱列表?

    如何从一组数字 1 2 3 直到我击中x 我的计划是重新调整列表 1 2 3 并把它砍在x chopAt 3 2 3 1 2 3 chopAt 3 2 1 3 2 1 3 chopAt 3 3 1 2 3 chopAt chopAt x y
  • 如何更换HXT中的节点?

    给定一个示例 xml 文件

随机推荐

  • SQL 查询语法错误 - 字段名称中存在空格

    我的应用程序使用的数据库的字段名称包含空格 我相信这是我的问题的原因 这是一个典型的查询 SELECT FROM OV2 BAS AS bas INNER JOIN OV2 RefID AS ids ON bas Ref ID ids Re
  • Spring boot 字段需要一个无法找到的类型的 bean

    我正在阅读 Spring Boot 的 JPA 入门教程 但我正在努力 我知道这个问题有时在这里被问到 字段需要一个无法找到的类型的 bean 使用 mongodb 的 spring Restful API 错误 但这些问题和我遇到的有点不
  • 在不知道属性类型的情况下从属性和列表值获取属性值

    我想传入属性名称并返回值 这将位于通用实用程序中 并且它不知道属性类型 Update如果有人需要这样做 这就是实际的工作代码 我需要一种方法让核心代码解析属性而不知道它们是什么 public void LoadPropertiesToGri
  • 地图上大量标记的问题

    我正在开发一款 iPhone 上已经存在的 Android 应用程序 在应用程序中 有一个 Map 活动 它有 我数过 大约 800 个标记 分为四组 并用四种不同颜色的可绘制标记进行标记 每个组都可以打开或关闭 有关我在列表中的标记的信息
  • Angular 4:找不到组件工厂,您是否将其添加到@NgModule.entryComponents?

    我正在使用带有 webpack 的 Angular 4 模板 当我尝试使用组件 ConfirmComponent 时出现此错误 找不到ConfirmComponent 的组件工厂 您是否将其添加到 NgModule entryCompone
  • HTML 表格单元格可以使用 CSS 重新排列吗?

    我想知道是否可以仅使用 CSS 重新排列 HTML 表格单元格 例如可以这样 A B C 显示为 C A B 或者甚至是这样的
  • 在java中使用正则表达式替换括号中的逗号

    我想仅在括号内替换逗号 例如 Progamming languages Java C Perl TO Progamming languages Java or C or Perl 但它不应该替换以下字符串中的逗号 Progamming la
  • pandas:如何消除值以特定字符结尾的行?

    我有一个 pandas DataFrame 如下 mail DataFrame mail email protected email protected email protected email protected nfjebfj ema
  • 如何在 Windows 上安装 rmagick gem?

    如何为 Windows XP 安装 rmagick gem 我已经使用头文件安装了 ImageMagick 并且安装了 DevKit 附带的 RailsInstaller org 我不知道到哪里去修复这些错误 C RailsInstalle
  • 一次迭代两个数组的每个循环

    我有两个大小相同的 Javascript 数组 var demo new Array var demo3 new Array 我需要在 JQuery 代码中的每个循环中访问两个数组的值 冲浪了一段时间后 我遇到了 zip 操作 我尝试使用代
  • 根据用户更改主题/CSS

    我正在开发一款产品 我们最终将为其贴上白标标签 现在 我正在尝试找出以编程方式满足这些要求的最佳方法 以便用户可以通过其个人资料 设置表单更新网站的基本设计 即标题颜色等 要求 用户可以更新徽标 已完成 用户可以更新基本设计元素 基于 CS
  • 如何用JS以不可变的方式连接数组

    我想知道如何联系不可变的数组 让我们想象一下我从数组开始list 4 1 然后我从动作响应中接收数组 如下所示items 5 2 6 如何连接结果为的数组 4 1 5 2 6 并且该操作是不可改变的 Bonus 如何覆盖具有相同 id 的项
  • C++ std::string 是容器吗?

    对于你们中的一些人来说 这可能是一个简单的问题 但我想知道是否std string是一个容器 我所说的容器是指容器 例如std vector std list and std deque Since std basic string lt
  • 使用 Asyncio 进行非阻塞 Websocket 接收

    我正在开发一个 Python 3 程序 它试图做两件事 1 从外部 websocket 非阻塞 读取数据 类型 1 并且 2 在常规UDP套接字上接收数据 类型2 非阻塞 有很长一段时间 websocket 和 UDP 套接字上都没有数据
  • 以编程方式更新 Android 操作系统

    我正在从事一个移动设备管理项目 我们项目的要求之一是以编程方式更新 Android 设备操作系统 流程如下 服务器发送有关操作系统更新的推送通知 Android 客户端下载更新 现在我想以编程方式更新 Android 设备操作系统 我怎样才
  • 如何根据特定索引范围对 ArrayList 进行排序

    我的需要是根据特定的索引范围对字符串的 ArrayList 进行排序 例如 我的列表中有以下项目 abc xyz pqr asd 现在我想从索引 1 到最后一个索引对该列表进行排序 一种方式我认为我可以从具有所需索引范围的主列表创建一个子列
  • Delphi:检查文件是否正在使用

    我想写入 删除文件 但有时如果该文件正在被另一个程序使用 我会崩溃 如何检查文件是否被其他进程打开或者我可以打开它进行写入 问题是 在您检查是否可以获得独占访问权限和打开文件之间 其他东西获得了对该文件的独占访问权限 无论如何您都会收到异常
  • 如何分散客户使用 IE6 的注意力

    我们如何才能分散客户使用 IE6 的注意力 我们知道IE6并不是一个很好的符合标准的浏览器 有很多问题 如何满足客户不使用IE6 谢谢 我目前正在为我的公司建立一个新网站 我一直在考虑http code google com p ie6 u
  • Node.js:获取响应时间

    如何知道 URL 的响应时间 我在用着http get 发出 HTTP GET 请求 没有内置函数或值来获取响应时间 但您自己可以轻松获得该值 var http require http var start new Date http ge
  • Haskell 函数名中 ' 的含义?

    什么是报价 用于 我已经阅读了有关柯里化函数的内容 并阅读了定义 add 函数的两种方法 柯里化和非柯里化 咖喱版本 myadd Int gt Int gt Int myadd x y x y 但即使没有引号 它也同样有效 那么这有什么意义