Haskell 中的自定义 concat (++) 运算符

2024-01-17

是否可以定义我自己的++Haskell 中自定义数据类型的运算符?

I have:

data MyType = MyType [String]

我想将我自己的串联运算符定义为:

instance ? MyType where
    (MyType x) ++ (MyType y) = MyType (x ++ y)

我似乎无法在任何地方找到实例类的名称。


如果您不坚持致电接线员(++),

import Data.Monoid

instance Monoid MyType where
    (MyType x) `mappend` (MyType y) = MyType (x ++ y)
    mempty = MyType []

然后你可以使用

(<>) :: Monoid m => m -> m -> m

这是一个别名mappend(我认为它已经是类型类成员,但它不是:/)。列表有一个Monoid实例,其中mappend is (++),这样就可以实现您想要的效果。这Monoid实例还给你

mconcat :: Monoid m => [m] -> m

您可以使用它来连接列表MyTypes.

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

Haskell 中的自定义 concat (++) 运算符 的相关文章

  • Haskell 标准库是什么?

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

    无法弄清楚如何合并两个列表通过以下方式在哈斯克尔 INPUT 1 2 3 4 5 11 12 13 14 OUTPUT 1 11 2 12 3 13 4 14 5 我想提出一个更懒的合并版本 merge ys ys merge x xs y
  • Data.Sequence 中的 inits 和 tails 如何工作?

    Louis Wasserman 编写了当前的实现inits and tails in Data Sequence 他表示它们非常高效 事实上 只要查看代码 我就可以看到 无论它们在做什么 它们都是以干净 自上而下的方式进行的 这往往会给惰性
  • Haskell:不在范围内:数据构造函数

    今天开始在学校学习 haskell 我遇到了函数问题 我不明白为什么它不在范围内 代码如下 ff Char gt Char gt Char ff A B x 0 y 1 x lt A y lt B x 1 y 0 和错误 md31 hs 2
  • 如何在Haskell中实现词法分析器和解析器

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

    我试图证明类型级函数Union https hackage haskell org package type level sets 0 8 5 0 docs Data Type Set html t Union是关联的 但我不确定应该如何完
  • 为什么 PowerShell 中的整数按数字进行比较?

    我的代码告诉你你猜测的数字是高于还是低于随机生成的数字 但它似乎只在其中一个数字低于 10 时才比较数字的前几位 int GeneratedNum Get Random min 1 max 101 Write Debug Generated
  • C 语言中 =+(等于加)是什么意思?

    我碰到 与标准相反 今天在一些 C 代码中 我不太确定这里发生了什么 我在文档中也找不到它 In ancientC 版本 相当于 它的残余物与最早的恐龙骨头一起被发现 例如 B 引入了广义赋值运算符 使用x y to add y to x
  • 函数式语言中的部分求值和函数内联有什么区别?

    我知道 函数内联就是用函数定义代替函数调用 部分评估是在编译时评估程序的已知 静态 部分 在 C 等命令式语言中 两者之间存在区别 其中运算符与函数不同 但是 在像 Haskell 这样的函数式语言 其中运算符也是函数 中 两者之间有什么区
  • 在 ghci 下执行 `(read "[Red]") :: [Color]` 时会发生什么?

    我正在阅读以下小节现实世界 Haskell 第 6 章 类型类 http book realworldhaskell org read using typeclasses html关于一个实例Read for Color 它实现了reads
  • 如何使用foldr为列表创建显示实例?

    我想为我的数据类型 我的列表 编写自己的显示实例 到目前为止 我的方法是有效的 但我总是在末尾有一个逗号 我已经尝试用最后一个元素启动折叠并将其从列表中删除 但它很麻烦而且不起作用 有没有更简单的方法来获得正确的解决方案 实际 1 2 3
  • Haskell 点运算符

    我尝试在 Haskell 中开发一个简单的平均函数 这似乎有效 lst 1 3 x fromIntegral sum lst y fromIntegral length lst z x y 但是为什么下面的版本不行呢 lst 1 3 x f
  • 参考指南:这个符号在PHP中是什么意思? (PHP 语法)

    这是什么 这是关于 PHP 语法时不时出现的问题的集合 这也是一个社区 Wiki 因此邀请每个人参与维护此列表 为什么是这样 过去很难找到有关运算符和其他语法标记的问题 主要思想是提供 Stack Overflow 上现有问题的链接 这样我
  • 如果该值未在语句中的其他任何地方使用,为什么要使用 ++i 而不是 i++?

    我很清楚在 C 中 int someValue i array i otherValue 相比之下有不同的效果 int someValue i array i otherValue 但每隔一段时间我就会看到 for 循环中带有前缀增量的语句
  • 为什么我不能声明推断类型?

    我有以下内容 runcount Eq a Num b gt a gt b runcount runcountacc 0 runcountacc Eq a Num b gt b gt a gt b runcountacc n runcount
  • 如何从字符串调用并执行运算符?

    例如 var s 3 3 s replace d g function all n1 operator n2 r new Number n1 new Number n2 return r 注意 不使用eval 变量运算符可以吗 https
  • 检索 Haskell 项目中所有导入的列表

    因此 我的最终目标是通过确保项目导入的所有实体都存在于其声称可以使用的版本中 来评估 cabal 文件中依赖项的准确性 一个好的开始是找到单个源文件使用的所有导入实体的列表 可选地包含有关它们来自何处的信息 我愿意暂时忽略类实例的情况 因为
  • 与 Functor 不同,Monad 可以改变形状?

    我一直很喜欢以下关于单子相对于函子的力量的直观解释 单子可以改变形状 函子不能 例如 length fmap f 1 2 3 总是等于3 然而 对于单子来说 length 1 2 3 gt gt g往往不等于3 例如 如果g定义为 g Nu
  • 找到将一个数字转换为另一个数字的最小移动次数的算法

    假设我们有两个正整数 a 和 b 每次移动我们都可以将 a 除以 2 但前提是 a 是偶数 将 a 乘以 2 或者将 a 加 1 将a变为b需要多少步 找到一个直接公式或一种有效的算法 即以对数时间运行的算法 我取得的一些进展 我们可以把它
  • 在ghci中,如何删除现有的绑定?

    我收到一个 绑定影响现有绑定 错误 类似于以下错误this https stackoverflow com questions 2902716 in haskell what does it mean if a binding shadow

随机推荐

  • 如何在不使用 API 的情况下以编程方式执行搜索?

    我想创建一个程序 将字符串输入到 Google 等网站的文本框中 不使用其公共 API 然后提交表单并获取结果 这可能吗 我认为抓取结果需要使用 HTML 抓取 但是如何在文本字段中输入数据并提交表单呢 我会被迫使用公共 API 吗 难道这
  • NPM 错误!当我运行创建反应应用程序时代码完整性

    我尝试启动一个新的反应项目 但不断收到此错误 npm ERR code EINTEGRITY npm ERR errno EINTEGRITY npm ERR Invalid response body while trying to fe
  • 如何在 Android 中从 Drawable 将图像附加到彩信?

    我想将资源 可绘制文件夹中的图像附加到彩信 是否可以将可绘制文件夹中的图像附加到彩信 如果是 请在此处提供一些代码 我尝试了很多 也在这里找到了很多 以及在谷歌上但仍然无法获得正确的解决方案 请有人帮助我解决这个问题 提前致谢 我的代码如下
  • 检查R中的值是否==整数(0)[重复]

    这个问题在这里已经有答案了 我正在使用grepR 中的函数检查是否满足条件正则表达式 我所拥有的是这样的 grep expression string 一个例子可能是 value grep s A z value 哪个输出 整数 0 我想要
  • 具有绝对导入的 Rollup 和 Typescript 类型声明

    我正在制作 React 组件库 项目结构是这样的 src components utils hooks 现在我尝试使用汇总生成类型 d ts 文件 类型是生成的 但例如我的组件NumberInput正在使用绝对导入Input像这样的组件 i
  • React 与 ReactDOM?

    我有点新的反应 我发现我们必须导入两件事才能开始 React and ReactDOM 任何人都可以解释其中的区别 我正在阅读反应文档 https reactjs org docs 但它没有说 React 和 ReactDOM 最近才被分成
  • C++ cout 不显示任何内容

    什么可以解释为什么 cout 在此代码中没有显示任何内容 我知道它与 v 0 1 行有关但我不知道为什么 有人有解释吗 编辑 我也知道改变 v 0 1 对于 v push back 1 会解决问题 include
  • FreeTDS 不使用配置的 tds 版本

    freetds v0 91 tds 版本不匹配 我想在 Ubuntu 14 04 上连接到带有 FreeBSD 的 Windows SQL Server FreeTDS 使用 apt get 安装 我使用以下命令尝试了不同的 tds 版本
  • iexpress 生成的可执行文件在 XP 上不是有效的 win32 应用程序

    我使用的是 c windows syswow64 中的 32 位 iexpress exe 生成的 exe 文件在 Windows 7 和 Windows 8 x64 上运行良好 我可以确认它是 32 位应用程序 然而 当尝试在 XP 上运
  • 用C语言访问Gmail

    python 有等效的吗libgmail http libgmail sourceforge net in C Edit 我正在努力实现相当于GmailFS http en wikipedia org wiki GmailFS在C 如果您能
  • 使用knitr时无法让LyX生成不在同一行的两个图

    这里是针织新手 喜欢这个包 一切都很顺利 除了在 LyX 中编译后两个图不会并排出现 不确定发生了什么 因为我正在逐字复制 knitr 图形手册 knitr graphics lyx 中的示例 我的 LyX 代码 在图形浮动中 lt
  • Spring boot:排除一些自动配置的bean

    我有一个使用 spring kafka 的 Spring boot 项目 在这个项目中 我构建了一些包装 spring kafka beans 的事件驱动组件 即 KafkaTemplate 和 ConcurrentKafkaListene
  • 如何通过.NET/C# 查找CPU 核心数?

    有没有办法通过 NET C 找出CPU核心数 PS这是一个直接的代码问题 而不是 我应该使用多线程吗 问题 您可以获得与处理器相关的多种不同信息 物理处理器数量 核心数 逻辑处理器的数量 这些都可以不同 如果机器具有 2 个支持超线程的双核
  • 带有 angular2 的非 SPA

    我开始使用 Angular2 带有 Express js 后端 目的是将页面的几个部分的控制权传递给 Angular2 组件 但我最终意识到 当 Angular2 控制页面的整个区域时 系统会更有效 但是 我的应用程序不是 SPA 除了保存
  • log4net 多个附加程序,写入事件查看器

    我使用 log4net 进行日志记录 我有两个附加程序 一个文件和另一个事件日志附加程序 我在注册表编辑器中注册了应用程序 问题是现在两个记录器都在事件查看器中写入 我需要fileAppender写入文件并eventLogAppender显
  • Cakephp find函数中限制sql

    我如何在cakephp中的sql中使用限制 我的意思是下面是sql select from emp limit 3 4 如何在 find 函数中使用上述限制 3 4 更好的方法 this gt Emp gt find all array l
  • VB6 子串索引

    我正在尝试在 VB6 中匹配电子邮件地址字符串中的域名 但这不是我的日常语言 我基本上想从地址中提取域名 即 电子邮件受保护 cdn cgi l email protection 进行比较 我想通过获取 之后的所有内容来提取它 我想找到 的
  • R 中的 3d 曲面图

    我正在寻找使用 Rplotly库来创建 x y z 坐标数据的 3D 曲面图 类似于下面的链接所示 https plot ly r 3d surface plots https plot ly r 3d surface plots 看来pl
  • 如何在每次显示视图控制器时随机化 UILabel 文本

    如何在每次显示视图控制器时使 ViewController 中的标签具有不同的文本字符串 谢谢 我正在使用 Swift 3 假设您知道如何添加UILabel给你的ViewController 这里是如何在开始时选择随机文本的快速示例 cla
  • Haskell 中的自定义 concat (++) 运算符

    是否可以定义我自己的 Haskell 中自定义数据类型的运算符 I have data MyType MyType String 我想将我自己的串联运算符定义为 instance MyType where MyType x MyType y