问题标签 [deriving]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - 泛型派生双函子的现代 haskell 实现
我正在寻找一种自动派生双函子fmapFirst
的方法fmapSecond
。我更喜欢使用新Generic
类型类或 usingData.Data
并且没有 Template Haskell 的方法。
(请注意,我已经知道https://hackage.haskell.org/package/genifunctors-0.2.2.0/docs/Data-Generics-Genifunctors.html使用 Template Haskell 支持这一点,我想知道 Template Haskell 是否可以这里避免)
haskell - 如何为 DataKinds 派生类型自动派生 Typeable 实例?
我有一些这样的类型:
我想typeOf
在这个函数中使用它们:
这不起作用,因为a
findRate 中的类型没有Typeable
实例。所以我通过这样做来修复它:
但是,当货币数量增加时,这将成为很多样板。有没有办法指定所有类型的种类Currency
都应该派生一个Typeable
实例?
编辑:另外,一种让它推断 in Money a
the a
is的Typeable
方法会很好,所以我不需要在(Typeable a) =>
任何地方添加。不过那是次要的。
haskell - 为什么没有办法在 Haskell 中推导出 Applicative Functor?
Functor
在 Haskell 中,您可以派生Foldable
并Traversable
自动使用deriving
. 但是,没有办法推导出Applicative
。考虑到有一种明显的方式来定义一个Applicative
实例(这相当于一个压缩的应用程序),没有任何方法可以启用deriving Applicative
吗?
haskell - 枚举类型的自定义派生(读取,显示)
假设我有这个枚举类型:
我想为以下行为定义Read
实例Show
:
这些定义中有很多重复,所以我想将每个类型构造函数与一个字符串相关联,然后从这些关联中自动Show
生成。Read
这样的事情可能吗?
rust - 自动为数字类型派生 Add、Mul、Ord 等
创建行为像数字的自定义类型的最简单方法是什么?
我想要类型检查以防止在我的程序中混合不同的单元,但我仍然希望能够轻松地对类型执行计算而无需来回转换(类似于自定义Centimeters
和Inches
类型的情况)。
如果我创建:
然后我必须手动实现Add
,Mul
和Ord
许多其他特征。这是很多样板,并且复制和粘贴此代码会产生破坏程序中基本算术的风险:)
不幸的是#[derive(Add, Sub, …)]
,似乎不支持。是否有另一个可以达到类似效果的标准特征/类型/板条箱?
haskell - Haskell 可类型实例
我cmdargs
用来从命令行程序中获取一些参数。我在我的程序中使用了一些特殊类型
"Max" "Min" "Moy" "Med"
我可以通过派生类中的Function
数据类型直接在参数中传递这些类型Data
和Typeable
. 我的问题是我的程序变得越来越复杂,我需要重命名我的构造函数以避免名称冲突。
但是,我想继续使用"Max" "Min" "Moy" "Med"
. 为此,我想我需要创建自己的Data
Instances Typeable
,Function
对吗?
我的问题是,即使在阅读了 Hackage 文档之后,我也没有设法创建这些实例。
您是否曾经成功地创建过您自己的数据类型的实例Data
?Typeable
haskell - 创建一个新类型的 Eq 实例
我正在学习 Haskell,并且得到了以下任务 - 我有一个由两种混合数据类型组成的新类型,我必须在不使用派生的情况下将其设为 Eq 的实例。这是我所拥有的:
然而,拥抱就是一切
我该如何解决?我也不能真正导入 Eq 隐藏的东西,因为我需要它来检查 Number 或 Character 的给定成员是否相等。
haskell - 在 Haskell 中导出读取:为什么我必须使用构造函数的参数名称?
我一直在尝试deriving
并且很难理解它是如何deriving (Read)
工作的。
我们来看看下面的数据定义:
没什么特别的,只是两种数据类型各自封装了一个Int
,但第二种引入val
了Int
.
在交互式控制台中,以下说明按预期工作:
虽然以下一个不起作用(编辑:我希望这不起作用)
现在让我们开始吧:
我认为推导Read
会给我提供输入数据类型的相同方法,但在下面的第 1 行和第 2 行工作,而第 3 行不起作用,因为没有给出参数名称:
是否有可能derving (Read)
也可以派生“非参数名称构造函数”,read "DWN 5" :: DataWithName
以便与“参数名称构造函数”一起工作?
或者您能否提供一些有关如何处理数据读取/输入的信息?
谢谢!