问题标签 [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.

0 投票
2 回答
393 浏览

haskell - 为什么 Either 派生 Show 但 Maybe 没有?

两者的文档EitherMaybe表明它们具有Show.

Either被定义为推导Show,简单地说:

然而,Maybe不:

既然它们是其中的一部分base并且非常相似,为什么不Maybe直接派生Show

另一个问题也可能是,它从哪里得到它的Show实例?

0 投票
0 回答
259 浏览

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 是否可以这里避免)

0 投票
2 回答
576 浏览

haskell - 如何为 DataKinds 派生类型自动派生 Typeable 实例?

我有一些这样的类型:

我想typeOf在这个函数中使用它们:

这不起作用,因为afindRate 中的类型没有Typeable实例。所以我通过这样做来修复它:

但是,当货币数量增加时,这将成为很多样板。有没有办法指定所有类型的种类Currency都应该派生一个Typeable实例?

编辑:另外,一种让它推断 in Money athe ais的Typeable方法会很好,所以我不需要在(Typeable a) =>任何地方添加。不过那是次要的。

0 投票
1 回答
310 浏览

rust - 为克隆的东西派生克隆?

此代码(也在播放中

失败Bad

但它没有问题Good

  • 这是为什么,
  • 有什么解决方法吗?我并不热衷于处理 12 个独立的字段。
0 投票
2 回答
2549 浏览

haskell - 为什么没有办法在 Haskell 中推导出 Applicative Functor?

Functor在 Haskell 中,您可以派生FoldableTraversable自动使用deriving. 但是,没有办法推导出Applicative。考虑到有一种明显的方式来定义一个Applicative实例(这相当于一个压缩的应用程序),没有任何方法可以启用deriving Applicative吗?

0 投票
3 回答
686 浏览

haskell - 枚举类型的自定义派生(读取,显示)

假设我有这个枚举类型:

我想为以下行为定义Read实例Show

这些定义中有很多重复,所以我想将每个类型构造函数与一个字符串相关联,然后从这些关联中自动Show生成。Read这样的事情可能吗?

0 投票
1 回答
3081 浏览

rust - 自动为数字类型派生 Add、Mul、Ord 等

创建行为像数字的自定义类型的最简单方法是什么?

我想要类型检查以防止在我的程序中混合不同的单元,但我仍然希望能够轻松地对类型执行计算而无需来回转换(类似于自定义CentimetersInches类型的情况)。

如果我创建:

然后我必须手动实现Add,MulOrd许多其他特征。这是很多样板,并且复制和粘贴此代码会产生破坏程序中基本算术的风险:)

不幸的是#[derive(Add, Sub, …)],似乎不支持。是否有另一个可以达到类似效果的标准特征/类型/板条箱?

0 投票
1 回答
568 浏览

haskell - Haskell 可类型实例

cmdargs用来从命令行程序中获取一些参数。我在我的程序中使用了一些特殊类型

"Max" "Min" "Moy" "Med"我可以通过派生类中的Function数据类型直接在参数中传递这些类型DataTypeable. 我的问题是我的程序变得越来越复杂,我需要重命名我的构造函数以避免名称冲突。

但是,我想继续使用"Max" "Min" "Moy" "Med". 为此,我想我需要创建自己的DataInstances TypeableFunction对吗?

我的问题是,即使在阅读了 Hackage 文档之后,我也没有设法创建这些实例。

您是否曾经成功地创建过您自己的数据类型的实例DataTypeable

0 投票
1 回答
597 浏览

haskell - 创建一个新类型的 Eq 实例

我正在学习 Haskell,并且得到了以下任务 - 我有一个由两种混合数据类型组成的新类型,我必须在不使用派生的情况下将其设为 Eq 的实例。这是我所拥有的:

然而,拥抱就是一切

我该如何解决?我也不能真正导入 Eq 隐藏的东西,因为我需要它来检查 Number 或 Character 的给定成员是否相等。

0 投票
1 回答
1660 浏览

haskell - 在 Haskell 中导出读取:为什么我必须使用构造函数的参数名称?

我一直在尝试deriving并且很难理解它是如何deriving (Read)工作的。

我们来看看下面的数据定义:

没什么特别的,只是两种数据类型各自封装了一个Int,但第二种引入valInt.

在交互式控制台中,以下说明按预期工作:

虽然以下一个不起作用(编辑:我希望这不起作用)

现在让我们开始吧:

我认为推导Read会给我提供输入数据类型的相同方法,但在下面的第 1 行和第 2 行工作,而第 3 行不起作用,因为没有给出参数名称:

是否有可能derving (Read)也可以派生“非参数名称构造函数”,read "DWN 5" :: DataWithName以便与“参数名称构造函数”一起工作?

或者您能否提供一些有关如何处理数据读取/输入的信息?

谢谢!