如何在 Haskell 中将小数解析为有理数?

2023-12-19

我一直在参加编程竞赛 http://codeforces.com/contest/105 and 问题之一 http://codeforces.com/contest/105/problem/A' 输入数据包括十进制格式的小数:0.75就是一个例子。

将其解析为Double是微不足道的(我可以使用read为此),但精度的损失是痛苦的。需要非常小心Double比较(我没有),这似乎是多余的,因为有人RationalHaskell 中的数据类型。

当尝试使用它时,我发现read a Rational必须提供以下格式的字符串:numerator % denominator,显然我没有。

所以,问题是:

将分数的十进制表示解析为最简单的方法是什么Rational?

外部依赖项的数量也应该考虑在内,因为我无法将额外的库安装到在线判断中。


你想要的功能是Numeric.readFloat:

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

如何在 Haskell 中将小数解析为有理数? 的相关文章

  • 应用交换律

    带有效果的应用程序编程 http staff city ac uk ross papers Applicative html麦克布莱德和帕特森的论文提出了互换法 u lt gt pure x pure f gt f x lt gt u 为了
  • 计算/获取分层数据的“级别”

    好吧 我真的不知道这是否是正确的标题 但我不知道如何称呼它 我的问题是关于我的作业 我现在已经工作了几个小时 主题是 函数式数据结构 我有点陷入困境 我不知道如何继续 所以我需要编写一个具有以下签名的函数 data Heap e t Hea
  • Haskell 真的是纯粹的吗(有任何语言可以处理系统外的输入和输出)吗?

    在谈到函数式编程中的 Monad 后 该功能是否真的使语言变得纯粹 或者它只是黑板数学之外的现实世界中计算机系统推理的另一张 免狱卡 EDIT 这不是有人在这篇文章中所说的火焰诱饵 而是一个真正的问题 我希望有人能用它来击倒我并说 证明 它
  • 不同 hs 文件中的函数分离时堆栈空间溢出

    我有一个巨大的 haskell 文件 它编译和运行没有任何问题 我想将一些函数和类型定义放在通用 hs 文件中的单独模块中 然后将其导入我的主模块中 虽然主程序编译时没有任何错误 它还编译导入的模块 但当我尝试运行它时 出现堆栈空间溢出 I
  • 如何向 Scotty 中间件添加基本身份验证?

    我目前正在制作 Scotty API 但找不到任何 basicAuth 实现的示例 Wai Middleware HttpAuth 具体来说 我想将基本身份验证标头 用户 通行证 添加到我的某些端点 即以 admin 开头的端点 我已经设置
  • 谁能解释一下 GHC 对 IO 的定义吗?

    标题非常自我描述 但有一个部分引起了我的注意 newtype IO a IO State RealWorld gt State RealWorld a 剥离newtype 我们得到 State RealWorld gt State Real
  • 用 C# 解析和查询 SOAP

    我正在尝试解析一个大量命名空间的 SOAP 消息 源也可以在here http tinyurl com n3av6k
  • 如何将只缓存某些内容的字段添加到ADT?

    我经常需要向 ADT 添加字段 仅记住一些冗余信息 但我还没有完全弄清楚如何又好又高效地做到这一点 说明问题的最好方法是举个例子 假设我们正在使用无类型 lambda 项 type VSym String data Lambda Var V
  • 我应该使用镜头中的什么来按索引构建只读吸气剂?

    我有一个内部细节被隐藏的类型 我想提供某种镜头 可以在特定索引处读取所述类型的元素 但是not修改它们 一个Ixed我的类型的实例似乎没有做我想要的事情 因为它明确允许修改 尽管不允许插入或删除 如果我想允许只读索引 我不确定我使用什么 如
  • Haskell 测量函数性能

    在 Haskell 中 我如何 简单地 测量函数的性能 例如 运行需要多长时间 或者需要多少内存 我知道分析 但是 是否有一种更简单的方法不需要我对代码进行太多更改 测量运行需要多长时间以及需要多少内存是两个独立的问题 即 基准测试和分析
  • 如何组合过滤条件

    过滤器类函数接受一个条件 a gt Bool 并在过滤时应用它 当您有多个条件时 使用过滤器的最佳方法是什么 使用了应用函数 liftA2 而不是 liftM2 因为出于某种原因我不明白 liftM2 在纯代码中如何工作 liftM2 组合
  • 对元组列表进行排序的函数 - Haskell

    抱歉 这个简单的问题只是我对 haskell 非常陌生 我正在尝试编写一个函数 order 它将对另一个函数 Frequency 生成的元组列表进行排序 频率计算列表中不同元素的数量 a给出一个这样的结果 比如 gt 频率 aabbbccc
  • 如何修复Python中小数的错误? [复制]

    这个问题在这里已经有答案了 我有一个程序可以生成我需要的表 当数字之间的差异足够大 大约5分 时 一切都好 所以我决定使用 Decimal 库 但是当我将该模块添加到程序中时 一切都被破坏了 数字是相同的 这是我的十进制输出 几行起始行 0
  • 带有查询参数的渲染 url

    无法找到简单问题的解决方案 答案应该是显而易见的 如何在 hamlet 模板中使用查询参数渲染 url I e ItemsR 将生成http localhost 3000 items我如何生成类似的东西http localhost 3000
  • 在 Haskell 命令行应用程序中提示输入密码

    以下 Haskell 程序提示用户在终端中输入密码 如果输入正确则继续 main do putStrLn Password password lt getLine case hash password member database of
  • 在python中比较两个xml文件

    我是 python 编程新手 并且在理解这个概念时遇到了一些困难 我想比较两个 xml 文件 这些 xml 文件相当大 我将给出一个我想要比较的文件类型的示例 xml文件1
  • 什么是阴谋地狱?

    在阅读有关 阴谋地狱 的内容时 我有点困惑 因为这个词的含义太多了 我猜最初 Cabal Hell 指的是钻石依赖问题 该问题是通过限制构建计划在每个构建计划中只有任何包的单个版本来解决的 一个包的两个不同版本不能存在于单个构建计划中 正如
  • JavaScript 中的正则表达式用于验证十进制数字

    我想要 JavaScript 中的正则表达式来验证十进制数字 它最多只允许两位小数 例如 它应该允许10 89但不是10 899 它还应该只允许一个句点 例如 它应该允许10 89但不是10 8 9 尝试使用以下表达式 d d 0 2 如果
  • Haskell 和 Idris 之间的区别:类型宇宙中运行时/编译时的反映

    因此 在 Idris 中 编写以下内容是完全有效的 item b Bool gt if b then Nat else List Nat item True 42 item False 1 2 3 cf https www youtube
  • 在压缩存档内的文本文件上运行“head”,而不解压存档

    问候 我接手了之前的团队并编写了处理 csv 文件的 ETL 作业 我在 ubuntu 上结合使用 shell 脚本和 perl csv 文件很大 它们以压缩档案形式到达 解压后 很多都超过 30Gb 是的 那是 G 旧进程是在 cron

随机推荐

  • 使用 JS 计算两个值之间的色差/相似度%

    我需要计算两个十六进制颜色值之间的差异 因此输出是百分比值 我放弃的第一件事是将十六进制值转换为十进制 因为第一个值的权重比最后一个值高得多 第二个选项是计算每个 RGB 值之间的差异 然后将它们全部相加 然而 之间的区别0 0 0 and
  • 如何在iPhone上进行捏合手势?

    如何在 iPhone 上实现捏合手势 我熟悉在 iPhone 上使用触摸事件 但我非常懒 不想为像捏手势这样广泛使用的东西重新发明轮子 源代码或链接会很有帮助 您需要使用一些基本的数学知识自己实现它 void touchesBegan NS
  • 当视图控制器推到导航控制器上时,后退按钮不可见

    当点击单元格时 我使用导航控制器深入查看详细视图 当我将视图控制器推入导航控制器堆栈时 我希望看到一个后退按钮 可以点击该按钮将前一个视图从堆栈中弹出 问题是后退按钮不可见 但是当点击它时shouldbe 让我回到之前的视图 有什么问题 确
  • .NET Framework - 可能存在内存泄漏的类?

    就在前几天 我正在调查内存泄漏 该泄漏在不到两分钟的时间内使应用程序从约 50MB 膨胀到约 130MB 事实证明问题出在并发队列 http msdn microsoft com en us library dd267265 aspx班级
  • 选择选项使用 JQUERY 通过文本获取值[重复]

    这个问题在这里已经有答案了 我有 html 选择 下拉菜单 其中包含许多填充选项 我还有一个包含许多名称的表格 旁边有按钮 我需要当您按下任何名称旁边的按钮时 就会在选择框 下拉列表 中选择该名称 选项值是 id 选项文本是名称 例子 Na
  • 是否可以序列化 Ace Session 对象?

    我想序列化并存储 Ace Session 对象 这样我就可以打开一个 文件 并恢复所有内容 值 选择 光标位置 模式等 我试过了JSON stringify session 它会抛出一个循环错误 有任何想法吗 最简单的版本是 var ses
  • 有没有办法在 C# 5 中模仿 C# 6 空条件运算符

    我遇到一种情况 我需要在对象初始值设定项内分配一些对象的属性 其中一些对象可以为 null 我需要访问它们的属性 问题是它们太多 并且使用 if else 东西不好 Example visits visitJoins AsEnumerabl
  • Mersenne Twister 跨编译器的再现性[重复]

    这个问题在这里已经有答案了 我正在使用 std mt19937 64 生成随机数序列 我注意到 当在同一平台上使用相同的种子运行 GCC 和 Clang 时 我获得了不同的序列 我通过 Valgrind 运行该程序 发现没有未初始化的内存
  • conda 返回“解决环境:失败”

    我无法再使用 conda 实用程序 多年来我经常使用它 但最近 因为我安装了 python 模块scp 使用命令conda install scp 我不知道这是否重要 没有任何明显异常的情况 只要我使用 conda 无论命令如何 我都会收到
  • 使用 Node.js 实时抓取网页

    好处是使用 Node js 抓取网站内容 我想构建一个非常非常快的东西 可以以以下方式执行搜索皮划艇网站 http www kayak com 其中一个查询被分派到多个不同的站点 结果被抓取 并在可用时返回给客户端 我们假设这个脚本应该只提
  • 使用 printf() 将字符串居中

    默认情况下 printf 似乎将字符串向右对齐 printf 10s 20s 20s n col1 col2 col3 col1 col2 col3 我还可以像这样将文本向左对齐 printf 10s 20s 20s col1 col2 c
  • 对 Rcharts 使用百分比宽度

    我想知道如何使用 而不是 px 设置 rChart 的宽度 我在源代码中注意到它默认为像素 我试图在一个闪亮的应用程序中使用它 并且用图表修复似乎是一个问题 因为它们不随用户界面的其余部分扩展 有没有解决的办法 这应该被视为黑客攻击 因为两
  • Rails 有内置的分页解决方案吗?

    我注意到分页宝石就像mislav will paginate很受欢迎 这是因为Rails没有内置的分页解决方案还是因为内置的解决方案不是很好 在 Rails 2 0 中 ActionController 的分页功能被删除 并变成了一个名为
  • C 中的原子读取

    根据C 对 int 的读写是原子的吗 https stackoverflow com questions 54188 are c reads and writes of an int atomic 由于处理器缓存的问题 整数的读取 因此指针
  • 为什么 Python 脚本可以在 CLI 中运行,但在 cron 作业调用时却不能运行?

    我创建了一个 Python 脚本 我想通过 Ubuntu 服务器上的 cronjob 每天运行它 这是从命令行运行该脚本的方式 python home username public html IDM app manage py clean
  • 增强多索引容器的模板参数

    我需要创建一个包含多索引容器作为存储的通用类 当我编译时 它给出如下错误 其中我定义了第 n 个索引视图 错误 非模板 nth index 用作模板 connection manager 模板 类 conn mgr boost noncop
  • 实体框架从 6.1.x 升级到 6.2.0 会破坏某些查询,除非我启用 MARS

    我最近在我们的一个大型项目中将 EF 6 1 3 升级到 6 2 0 它破坏了我们大量的 LINQ 查询 启用 MultipleActiveResultSets 会使一切再次正常工作 但我很难理解这种变化 我们已经使用 EF 多年 并且经历
  • Three.js 中的剪辑是自动完成的吗?

    所以 我正在阅读有关剪辑的内容this http en wikipedia org wiki Clipping 28computer graphics 29维基百科文章 这似乎对所有游戏都非常重要 所以 我是否必须这样做 还是由 Three
  • GDB:在每一步后禁用当前行的打印

    GNU gdb 命令行调试器在每次执行后打印当前所在的行step and next命令 考虑以下 gdb 会话 我在其中单步执行一些代码 Temporary breakpoint 1 main argc 1 argv 0x7fffffffd
  • 如何在 Haskell 中将小数解析为有理数?

    我一直在参加编程竞赛 http codeforces com contest 105 and 问题之一 http codeforces com contest 105 problem A 输入数据包括十进制格式的小数 0 75就是一个例子