在 haskell 中将整数列表转换为一个 Int (如 concat)

2024-03-22

和标题说的差不多。我有一个整数列表,如下所示:[1,2,3]。我想将其更改为整数 123。我的第一个想法是 concat,但这不起作用,因为它的类型错误,我尝试了各种方法,但通常最终只是返回相同的列表。非常感谢任何帮助。

另外,我已经找到了一种打印正确内容(putStr)的方法,除了我希望类型为 Integer 而 putStr 不这样做。


您可以使用foldl http://haskell.org/ghc/docs/6.10.4/html/libraries/base/Data-List.html#v:foldl组合列表中的所有元素:

fromDigits = foldl addDigit 0
   where addDigit num d = 10*num + d

The addDigit函数被调用foldl从最左边的数字开始,一个接一个地添加数字。

*Main> fromDigits [1,2,3]
123

Edit:
foldl从左到右遍历列表,添加元素以累积一些值。

第二个参数foldl, 0在这种情况下, 是过程的起始值。在第一步中,将该起始值与1,列表的第一个元素,通过调用addDigit 0 1。这导致 10*0+1 = 1。在下一步中,这个 1 与列表的第二个元素组合,通过addDigit 1 2,给出 10*1+2 = 12。然后将其与列表的第三个元素组合,通过addDigit 12 3,结果为 10*12+3 = 123。

因此,毫无意义地乘以零只是第一步,在接下来的步骤中,实际上需要乘法来将新数字添加到累积数字的“末尾”。

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

在 haskell 中将整数列表转换为一个 Int (如 concat) 的相关文章

  • 有没有更好的方法将 UTC 时间转换为大纪元时间?

    我想将文件的修改时间设置为从 exif 数据获取的时间 为了从 exif 获取时间 我发现 Graphics Exif getTag Exif gt String gt IO Maybe String 要设置文件修改时间 我发现 Syste
  • 找不到模块“Yesod”

    我有以下代码 LANGUAGE TypeFamilies QuasiQuotes MultiParamTypeClasses TemplateHaskell OverloadedStrings module Simple where imp
  • : 中缀运算符在 Haskell 中的作用是什么?

    我正在阅读Haskell 简要介绍 http www haskell org tutorial index html 这不是那么温和 并且它反复使用 操作符而不直接解释它的作用 那么 它到底有什么作用呢 是 前置 运算符 x xs 返回一个
  • 这个对自身单位的列表理解是如何工作的?

    在 haskell IRC 频道中有人问 是否有一种简洁的方法来定义一个列表 其中第 n 个条目是之前所有条目的平方和 我认为这听起来像一个有趣的谜题 递归定义无限列表是我真正需要练习的事情之一 所以我启动了 GHCi 并开始尝试递归定义
  • 正则表达式查找字符串中的整数和小数

    我有一个像这样的字符串 str1 12 ounces str2 1 5 ounces chopped 我想从字符串中获取金额 无论它是否是小数 12 或 1 5 然后获取紧邻的前一个测量值 盎司 我能够使用一个非常基本的正则表达式来获取测量
  • Scala 中的随机列表[重复]

    这个问题在这里已经有答案了 我对 scala 中的随机播放列表有疑问 使用scala util Random 例如我有 val a cyan val b magenta val c yellow val d key val color Ra
  • 不同编程语言中的浮点数学

    我知道浮点数学充其量可能是丑陋的 但我想知道是否有人可以解释以下怪癖 在大多数编程语言中 我测试了 0 4 到 0 2 的加法会产生轻微的错误 而 0 4 0 1 0 1 则不会产生错误 两者计算不平等的原因是什么 在各自的编程语言中可以采
  • 需要在R中按行绑定列表数据

    我在 R 中按行绑定列表时遇到问题 我的列表数据集是 id 1 data k 1 id k b c 1 1 1 3 data k 2 id k b c 1 2 1 4 id 2 data k 1 id k b c 2 1 1 6 data
  • 当顺序很重要时如何从元组列表中删除重复项

    我看过一些类似的答案 但我找不到针对这种情况的具体内容 我有一个元组列表 5 0 3 1 3 2 5 3 6 4 我想要的是仅当元组的第一个元素先前出现在列表中并且剩余的元组应该具有最小的第二个元素时 才从该列表中删除元组 所以输出应该是这
  • PYTHON 从嵌套列表中删除元素

    我有一个像这样的数组 dataSet 387230 296163 323434 311472 323412 166282 410119 我想删除元素 311472 但不知道如何删除 我努力了 for set in dataSet for i
  • 在Python中,如何将矩阵逆时针旋转90度?

    gt gt gt def rotate matrix k List List int For example if I have m 1 2 3 2 3 3 5 4 3 rotate matrix m should give me 3 3
  • 在 R 中提取 data.frames 列表的名称以及 data.frame 中的值

    在下面的代码中 j是 data frames 的命名列表 我想知道是否有办法 a 提取变量的数值 即one short and one long 在 data frames 内并附加它们的相关名称 即 AAA or BBB or CCC 到
  • 类型级别集结合律的证明

    我试图证明类型级函数Union https hackage haskell org package type level sets 0 8 5 0 docs Data Type Set html t Union是关联的 但我不确定应该如何完
  • 删除 HashMap 中包含的列表项

    我有一个Hashmap
  • C++ 概念与 Haskell 类型类有何不同?

    Concepts TS 中的 C 概念最近已合并到 GCC 主干中 概念允许人们通过要求类型满足概念的条件 例如 可比较 来约束通用代码 Haskell 有类型类 我对 Haskell 不太熟悉 概念和类型类如何相关 概念 由概念 TS 定
  • 通过列表理解压平列表列表

    我正在尝试使用 python 中的列表理解来展平列表 我的清单有点像 1 2 3 4 5 6 7 8 只是为了打印这个列表列表中的单个项目 我编写了这个函数 def flat listoflist for item in listoflis
  • 迭代打印列表中的每个整数

    假设我有一个整数列表l 1 2 我想打印到stdout Doing print l产生 1 2 假设我想打印不带大括号的列表 map print l产生 No instance for Show IO arising from a use
  • 在Python中按属性获取对象列表中的索引

    我有具有属性 id 的对象列表 我想找到具有特定 id 的对象的索引 我写了这样的东西 index 1 for i in range len my list if my list i id specific id index i break
  • JavaScript 中是否存在整数类型?

    我刚刚开始学习 Javascript 我立即对 Mozilla 中看似矛盾的陈述感到困惑JavaScript 重新介绍 JS 教程 https developer mozilla org en US docs Web JavaScript
  • 如何设置行高 Sencha Touch List

    如何设置 Sencha Touch List 对象中的行高 我使用 HTML 来格式化行 多行行会变得更高 但如何设置行高 谢谢 格里 要编辑列表元素的默认高度 有两种方法 使用 SASS 创建您自己的 Sencha 主题 官方 Sench

随机推荐

  • XCode 5 - AppleScript - 如何获取当前选项卡中的文档

    我想在外部应用程序 例如 MacVim 的当前选项卡中打开文档 基于一个堆栈溢出答案 https stackoverflow com a 12306831 398861我使用以下 AppleScript 代码创建了一个 Automator
  • 无法在 ASP.NET/IIS7 经典模式下设置 HTTP Vary 标头

    首先 介绍一下背景 我为 ASP NET 编写了一个自定义 HTTP 压缩模块 我的开发机器有Windows 7 Ultimate 它附带了IIS7 我的生产环境使用IIS6 我遇到的问题是 资源专家 Droid redbot org 告诉
  • Visual C++ - 匿名方法

    你好 有没有办法在 Visual C 中使用匿名方法 Visual C 2010 supports C 0x lambda expressions 1 which can be used as anonymous functions int
  • 如何在 Spring Boot 中使用 Tomcat RemoteIpFilter

    客观的 获取用户的远程地址 即request getRemoteAddr 在 Spring Boot Web 应用程序中 介绍 众所周知 getRemoteAddr方法返回直接调用者的地址 该调用者可能是代理服务器或原始用户和最终目标服务器
  • Mockito 根据参数的属性返回值

    通常当使用 Mockito 时我会这样做 Mockito when myObject myFunction myParameter thenReturn myResult 是否可以按照以下方式做一些事情 myParameter setPro
  • Maven Release Plugin - 准备创建快照版本而不是发布版本的标签

    我有以下项目结构 framework 框架 父 pom 框架的东西 在framework parent pom的pom xml中我定义了以下插件
  • 配置log4net根据日志级别写入不同的文件

    我正在设置 log4net 并希望在 debug log 中写入调试消息 在 info log 中写入信息消息等 为此 我使用了几个附加程序 例如
  • Java Applet的安全警告提示

    从 JRE 1 7 update 55 开始 在某些情况下 并非总是如此 特别是如果我通过主机名而不是 IP 调用应用程序 即使我选中 不再显示此消息 也会始终显示安全警告 清单已根据最新指令修复 UPDATE 调查 JRE 安全日志时 我
  • vhdl中process语句的顺序执行

    对于vhdl中的process语句 据说process语句内部的执行顺序是连续的 我的问题是 请先看下面的代码 a b和c信号在进程语句中的if语句中是同时还是顺序分配给它们的新值 process clk is begin if risin
  • MySql:插入一行并获取内容

    是否可以插入一行并获取在同一查询中插入的值 就像是 INSERT INTO items item number state SELECT 3 number state FROM item bug WHERE id 3 然后 获取ID并执行
  • return 语句中两种不同的括号语法

    我正在关注 ReactJS 入门教程 https scotch io tutorials learning react getting started and concepts https scotch io tutorials learn
  • 如何让 Google 字体在 IE 中工作?

    我一直在开发一个使用谷歌字体 API https code google com apis webfonts 它很棒 据说已经在 IE 中进行了测试 但是在 IE 8 中测试时 字体根本没有样式化 我包括了谷歌的字体指示 http code
  • Cuda和pytorch内存使用情况

    我在用Cuda and Pytorch 1 4 0 当我尝试增加batch size 我遇到以下错误 CUDA out of memory Tried to allocate 20 00 MiB GPU 0 4 00 GiB total c
  • TfidfVectorizer.fit_transfrom 和 tfidf.transform 之间有什么区别?

    在 Tfidf fit transform 中 我们仅使用参数 X 而没有使用 y 来拟合数据集 这是正确的吗 我们仅为训练集的参数生成 tfidf 矩阵 我们没有使用 ytrain 来拟合模型 那我们如何对测试数据集进行预测呢 https
  • 如何以编程方式禁用 TextView maxLines?

    我很难重置maxLines的属性TextView以编程方式 刚刚尝试设置为0但它不起作用 1使应用程序崩溃 我可以使用更简单的解决方法并设置maxLines to 5000但我不想那样做 有什么想法如何做到这一点吗 UPDATED 好吧 我
  • Android 首选项屏幕布局

    我的应用程序中有以下首选项屏幕
  • Android P 中调用服务的 AlarmManager:startForegroundService

    我正在使用 AlarmManager 如下所示 它在 Android O 及以下版本中运行良好 AlarmManager mgr AlarmManager context getSystemService Context ALARM SER
  • NumPy ndarray 的三元运算符?

    NumPy 有三元运算符吗 例如 在 R 中 有一个向量化的if else功能 gt ifelse 1 10 lt 3 a b 1 a a b b b b b b b b NumPy 中有类似的东西吗 您正在寻找numpy where ht
  • File.renameTo() 没有任何效果

    我希望能够重命名文件夹列表 以便删除不需要的字符 例如 点和双空格必须变成单个空格 单击 GUI 中的按钮后 您将看到一个带有正确格式名称的消息框 这表明格式正确并且函数被调用 当我查看我创建的测试文件夹时 名称没有更改 即使刷新后也没有更
  • 在 haskell 中将整数列表转换为一个 Int (如 concat)

    和标题说的差不多 我有一个整数列表 如下所示 1 2 3 我想将其更改为整数 123 我的第一个想法是 concat 但这不起作用 因为它的类型错误 我尝试了各种方法 但通常最终只是返回相同的列表 非常感谢任何帮助 另外 我已经找到了一种打