Haskell 中标识符中的撇号

2024-01-08

我在互联网上找到了这段代码片段:

digits 0 = [0]
digits n = digits' n []
  where digits' 0 ds = ds
        digits' n ds = let (q,r) = quotRem n 10
                       in digits' q (r:ds)

sumOfDigits = sum . digits

有人可以快速解释一下“'”符号(digits n = digits' n []) 递归函数调用之后是for?我在 Haskell (教程)中看到了一些其他代码示例,但我不理解这个。快速解释表示赞赏。


撇号只是名称的一部分。它是 Haskell 中采用的命名约定(惯用语)。

Haskell 的约定是,就像数学一样 http://en.wikipedia.org/wiki/Prime_%28symbol%29#Use_in_mathematics.2C_statistics.2C_and_science,变量名称上的撇号表示与先前变量以某种方式相关或相似的变量。

一个例子:

let x  = 1
    x' = x * 2
in x'

x'x,我们用撇号来表示。


顺便说一下,你可以在 GHCi 中运行它,

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

Haskell 中标识符中的撇号 的相关文章

  • 为什么 Haskell 的默认字符串实现是一个字符链接列表?

    Haskell 默认值的事实String众所周知 实现在速度和内存方面都效率不高 据我所知 lists一般来说 在 Haskell 中实现为单链表 并且适用于大多数小型 简单数据类型 例如Int 这似乎不是一个好主意 但是对于String这
  • 我应该在 Turtle 或 Foldl 包中使用折叠吗?

    我在使用 Turtle 时遇到了一些困难 直到盯着难以理解的错误消息几分钟后才意识到我使用了错误的fold功能 https hackage haskell org package turtle 1 5 8 docs Turtle Shell
  • 在 Haskell 中,为什么我必须在这段代码中使用美元符号?

    我仍在尝试破解这段代码 import Data Char groupsOf groupsOf n xs take n xs groupsOf n tail xs problem 8 x maximum map product groupsO
  • Haskell:是的,没有类型类。为什么是整数?

    我有一个关于 GHCi 如何假定整数类型的问题 我正在阅读 Learn you a Haskell 是 否类型的课程 如果您想阅读全文 这里有一个链接 http learnyouahaskell com making our own typ
  • Haskell - 用防护罩替换外壳

    我想知道在这部分代码中是否可以用守卫替换 case 语句 firstFunction String gt Maybe MyType secondFunction MyType gt Integer myFunction String gt
  • 如何在 Haskell 中安装库?

    我尝试使用控制 Monad Extra andM https hackage haskell org package extra 1 7 10 docs Control Monad Extra html import Control Mon
  • Haskell 中的中缀运算符优先级

    对于以下 Haskell 表达式 返回 a gt gt f 应该读作 返回a gt gt f or 返回 a gt gt f 这里的相关规则是什么 规则始终是函数应用程序的优先级高于任何运算符 因此 return a gt gt f 被解析
  • Haskell 入门

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 几天来 我一直试图理解 Haskell 中的函数式编程范例 我通过阅读教程和观看截屏视频
  • 如何在 Haskell 中制作打勾游戏的图案?

    实现有 2 个参数的函数 ticktick 第一个参数是自然数元组 定义游戏场地的行数和列数 第二个列表包含由玩家 x 和玩家 o 轮流玩的坐标给出的井字游戏比赛的记录 打印游戏的实际状态 其中游戏区域将由字符 和 界定 空方块 以及字符
  • 简单 Haskell Monad - 随机数

    我正在尝试扩展代码这个帖子 https stackoverflow com questions 3944170 haskell and state 接受的答案 允许我能够基于以种子作为参数的函数 randomGen 调用 randomGen
  • Haskell Stack 从 github 安装包依赖项

    是否可以使用 Haskell 堆栈从 github 安装软件包的版本 例如在一个 cabal or a stack yaml文件 如何在 git repo branch revision 上指向依赖项 对于堆栈 The 的文档stack y
  • Haskell:Data.Numbers.Primes 库在哪里?

    我尝试导入 Data Numbers Primes import Data Numbers Primes 伦哈斯克尔给了我 5 hs 1 8 Could not find module Data Numbers Primes Use v t
  • 如何在haskell中获取变量名称

    我来到 haskell 时有一些 c 背景知识 想知道是否有类似的 define print a printf s d n a a int a 5 print a 应该打印 a 5 这是 augustss 提到的 TH 解决方案 LANGU
  • Objective-C 中是否有命名初始化方法的约定?

    在可以通过不同的 init 方法初始化的 Objective C 类中 将所有初始化程序共用的初始化代码收集到一个从其他 init 方法 有时也从从 Nib 唤醒 是否有关于如何命名该方法的约定 初始化器 初始化公共 根据 Apple 的说
  • 您将整个应用程序中使用的常量保存在哪里?

    界面是存储我的信息的可接受的地方吗 public static final Foo bar 您是否推断它们可以从程序外部读取 你给它编了一个超级课吗 当情况出现时 你会怎么做 我会将每个常量放入与其最密切相关的类或接口中 例如 因为它将被其
  • Haskell 标准库是什么?

    GHC专用库可以称为标准库吗 或者只有 Haskell 2010 报告中的那些才算数 许多 GHC 库可以通过 Haskell 报告中的函数来实现 可能与 C 绑定相结合 但其他语言依赖于 GHC 特定的扩展 因为语言报告中定义的当前 Ha
  • ST monad 是如何工作的?

    我知道 ST monad 有点像 IO 的弟弟 而 IO 又是添加了状态 monadRealWorld魔法 我可以想象状态 也可以想象 RealWorld 以某种方式放入 IO 中 但每次我写一个类型签名ST the sST monad 的
  • 我是否需要采取明确的操作来促进与持久数据结构的共享?

    我来自命令式背景 正在尝试实现一个简单的不相交集 并集查找 数据结构 以获得在 Haskell 中创建和修改 持久 数据结构的一些练习 目标是有一个简单的实现 但我也关心效率 我的问题与此相关 首先 我创建了一个按等级并集的不相交集森林实现
  • 约束包如何工作?

    背后的想法数据 约束 Forall http hackage haskell org packages archive constraints 0 3 2 doc html src Data Constraint Forall html据我
  • RankN多态性和令人发指的克莱斯利之箭

    我不明白为什么 demobind1 的定义会产生一些编译器错误 它看起来像一个愚蠢的翻转 但不知何故 LANGUAGE GADTs LANGUAGE RankNTypes ScopedTypeVariables TypeOperators

随机推荐

  • 按 Soundex(或类似)“亲密程度”排序

    有什么方法可以让 MySQL 根据结果与搜索词的 听起来 接近程度来对结果进行排序吗 我正在尝试对包含用户输入的城市名称的字段进行排序 存在变体和拼写错误 我想在顶部显示 最接近 的匹配项 我知道 soundex 可能不是最好的算法 但如果
  • 从命令行安装驱动程序 (.inf) 文件

    我正在 Windows 8 1 中工作 我需要安装驱动程序文件 inf文件 从命令行 我需要使用哪个命令 我知道我还有很多其他方法来安装 inf文件 但我必须从命令行安装它 请帮我 提前致谢 Granger 的评论也适用于 Windows
  • Apache Kafka - 主题/分区上的 KafkaStream

    我正在为大容量高速分布式应用程序编写 Kafka Consumer 我只有一个主题 但收到的消息率非常高 拥有多个分区来服务更多消费者将适合此用例 最好的消费方式是拥有多个流读取器 根据文档或可用示例 ConsumerConnector 给
  • 如何为 Android 支持库启用 javadoc?

    当使用 Android 支持库来实现兼容性并尝试查看 javadoc 时 例如 FragmentTransaction 我收到以下错误 因为没有关联的 javadoc 文件 android support v4 app FragmentTr
  • 如何使用 JSTL 对表示 URL 路径的字符串进行编码?

    使用 JSTL 对表示 URL 路径 而不是请求参数 的字符串进行 URL 编码的最佳方法是什么
  • Django 模型、信号和电子邮件发送延迟

    我已经向我的模型添加了一个信号 一旦保存模型 通过models signals post save connect信号和send mail用于发送电子邮件 这个想法仍然会给用户带来延迟 当他们在网站上保存模型时 他们必须等到所有这些电子邮件
  • 如何通过 UiPath 读取 Excel 工作表并将单元格值放入不同的文本字段中?

    如何通过 UiPath 读取 Excel 工作表并将单元格值放入不同的文本字段中 我有一张Excel表格 如下 我已阅读 Excel 内容并稍后迭代内容 我将内容存储在Output Data Table如下 读取范围 输出 数据表 CV数据
  • pyhive、sqlalchemy无法连接到hadoop沙箱

    我已经安装了 pip install thrift pip install PyHive pip install thrift sasl 和 自从pip install sasl我下载失败sasl 0 2 1 cp27 cp27m win
  • abs(unsigned long) 有任何意义吗?

    我遇到过这段代码 我的分析器偶然将其报告为瓶颈 include
  • MVC 3 在哪里加密用户的密码?

    我有自己的密码加密 dll 用于在用户登录时检查用户的密码 这在我的用户实体中引用 现在我已经为用户创建了注册功能 除了密码尚未加密之外 该功能运行良好 我的问题很简单 我应该把新用户密码的加密放在哪里 我不确定 因为我知道用户的密码不应该
  • 我应该在注入的 Angular 服务上使用只读而不是公开它们吗?

    今天我进行了一次讨论 我的一些同事说他们像这样注入 Angular 服务 constructor readonly language I18nService 他们说他们这样做是因为它可以防止我的组件的使用者更改注入的服务 有点像这样 Com
  • Python 类构造函数(静态)

    Python 是否有类构造函数的机制 即每当首次引用类时 而不是创建该对象的实例时 调用的函数 我知道这在其他一些语言中也存在 但我还没有在Python中遇到过 基本上 我想初始化该函数中的一些静态属性 我在下面举了一个我所期望的例子 当然
  • 如何在同一页面上加载多个版本的 jQuery 插件?

    我正在尝试使用最新版本的时间选择器插件 http trentrichardson com examples timepicker 用于 jQuery UI 另一个库已经在早期版本加载了它 1 0 4 但我想使用最新的 1 4 5 版本 在源
  • 使用 Spotify Web API / Playback SDK 检测曲目播放结束

    使用 Spotify Web API 和 Web Playback SDK 有人知道检测曲目播放何时完成 即歌曲结束 的好方法吗 我知道一些名为player state changed在Web Playback SDK中 但是事件中提供的数
  • JavaScript 中二维数组的切片/部分

    我需要用二进制代码获取二维数组的切片 我需要指定我想从哪里开始以及在哪里结束 现在我有这段代码 但我很确定它是错误的 var slice var endx 30 var startx 20 var starty 10 var end 20
  • 如何用Java流畅地构建JSON? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话
  • 使用 Delphi XE5 for Android 创建 WifiConfiguration

    我正在尝试为 Android 创建 WifiConfiguration 可以设置所有其他属性 但如果我尝试设置 SSID 或 BSSID 则会出现分段错误 11 并且应用程序和 Delphi 会挂起 var WIFIConfig JWifi
  • Qt4:QAbstractTableModel 拖放,不带 MIME

    我有一个继承 QAbstractTableModel 的类 并在 QMap 中保存一些复杂的结构 这QVariant data QModelIndex index 方法只返回一个枚举 它描述自定义项目委托应如何绘制单元格的内容 我想在这个模
  • 向 Javacard 发送扩展 APDU

    我有一个 ACR38 智能卡读卡器和一些符合 GP 规范 02 的 Javacard 2 1 1 据我所知 有两种APDU 短APDU APDU 与LC or and LE比 短255 and 扩展APDU APDU 与LC or and
  • Haskell 中标识符中的撇号

    我在互联网上找到了这段代码片段 digits 0 0 digits n digits n where digits 0 ds ds digits n ds let q r quotRem n 10 in digits q r ds sumO