问题标签 [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 投票
1 回答
302 浏览

ocaml - Opam 安装派生,语法错误

所以基本上我正在尝试使用 Opam 在我的 Mac 上安装派生库。

我用ocamlfind query了,好像安装成功了。

安装后,我尝试使用 ocamlbuild 编译一个简单的代码,如下所示:

这是 _tags 文件:

这是命令:

但是,我总是收到此错误:

这很奇怪,我相信语法是正确的..

谁能给我一些帮助?

0 投票
1 回答
120 浏览

ocaml - 如何在 OCaml 中同时使用衍生和电池?

所以基本上在我的项目中,我需要同时使用batteries(forFile.lines_of和其他相关函数) 和deriving(for Show.show)。

但是,当我在我的 Mac 上opam安装包deriving时,它似乎会首先删除batteries包,然后它会开始安装deriving..

并且在使用安装时batteriesopam它会首先删除deriving...

我的配置有什么问题吗..?或者这只是正常情况..?那我怎么能同时使用batteriesderiving呢?

在此处输入图像描述

0 投票
1 回答
1601 浏览

arrays - 数组上的 PartialEq

关于 rust 数组的问题(常量大小的数组,[T, ..Size])。我正在尝试进行以下工作:

我知道我不能使用派生并简单地编写自己的 PartialEq,但这相当令人讨厌......给出的错误消息对我来说也很神秘(见下文)。有没有合适的乡村方式来做到这一点?

从今天开始,我每天都在生锈。

谢谢!

0 投票
3 回答
6801 浏览

haskell - 拉链共胞,一般

给定任何容器类型,我们可以形成(以元素为中心的)拉链,并且知道这个结构是一个 Comonad。最近在另一个 Stack Overflow 问题中对以下类型进行了非常详细的探讨:

搭配以下拉链

虽然它的实例的构造有点毛茸茸,但情况确实Zip如此。Comonad也就是说,Zip可以完全机械地派生自Tree并且(我相信)以这种方式派生的任何类型都自动是 a Comonad,所以我认为我们应该可以通用和自动地构造这些类型及其comonads。

实现拉链构造通用性的一种方法是使用以下类和类型族

它(或多或少)出现在 Haskell Cafe 线程和 Conal Elliott 的博客中。此类可以针对各种核心代数类型进行实例化,从而为讨论 ADT 的导数提供了一个通用框架。

所以,最终,我的问题是我们是否可以写

可用于包含上述特定的 Comonad 实例:

不幸的是,我没有运气写出这样的例子。inTo/签名是否outOf足够?是否需要其他东西来限制类型?这种情况甚至可能吗?

0 投票
1 回答
3073 浏览

haskell - 广义新型推导

Haskell 可以推导出MonadState sinT1下面的实例,但不是 in T2which 是非常相似的类型。我应该以哪种方式修改代码T2以便MonadState s可以自动派生实例?

0 投票
1 回答
343 浏览

haskell - Haskell:创建 Show 的实例

在下面的代码中,我定义了一个代数数据类型,并且我(试图)使它成为 Show 的一个实例。但是,我收到编译时错误(包括在下面)。我究竟做错了什么?

我相信我使用了正确的语法(至少根据这篇文章)。对于上下文,我正在处理“99 Haskell 问题”中的问题 #13

我收到以下编译时错误:

例如,目标是让它在 GHCi 中按如下方式工作:

编辑:对不起,完全不相关的帖子标题 - 现在改变了。

0 投票
1 回答
89 浏览

haskell - 从另一个文件中声明的数据派生通用失败

我有这两个模块:

在尝试构建包含这两个文件的项目时,链接阶段的 ghc 会抛出几个如下所示的错误:(它们仅在 (.data+0XXXX) 部分不同)。

最后的信息是:

我用 ghc 7.8.3 和 7.6.3 进行了尝试,它们的行为都相似。

如果将所有代码放入一个模块中,我可以使此功能正常工作。

谁能解释一下,这里发生了什么?

0 投票
0 回答
317 浏览

ghc - 为 GADT 导出类型和数据?

使用:

并给出以下数据类型:

我的目标是使用uniplate需要Data实例的包。

TypeableGHC是否能够Data自动推导?由于 7.8 GHC 应该能够这样做,并且至少因为Typeable它是强制性的。

我可能可以编写自己的Data实例......但是如果 GHC 可以为我导出它,为什么要这样做呢?

0 投票
2 回答
538 浏览

haskell - 都是可区分的类型 Monad

给定一个可微类型,我们知道Zipper是一个Comonad. 对此,丹·伯顿(Dan Burton)问道:“如果推导产生了一个单子,这是否意味着整合产生了一个单子?或者这是胡说八道吗?”。我想给这个问题一个具体的含义。如果一个类型是可微的,它一定是一个单子吗?给定以下定义,该问题的一种表述是问

我们可以编写具有类似签名的函数吗

遵守单子定律

在链接问题的答案中,有两种成功的方法可以解决类似的ComonadZipper. 第一种方法是扩展Diff类以包括对偶>>=并使用偏微分。第二种方法是要求类型是两次或无限可微的

0 投票
2 回答
158 浏览

haskell - 通过 GeneralizedNewtypeDeriving 派生实例时使用自定义实例

假设我们有一个 typeclass class (A a, B a) => C a where。使用newtype将允许我们克隆数据类型,然后通过GeneralizedNewtypeDeriving语言扩展自动派生实例(请参阅如何编写可派生类?处理具有相同内部表示和最小样板的多种类型?)。

问题:是否有可能让 ghc 自动派生Aand C,但使用我们自己指定的Bin deriving实现C

例如,以下代码(其中A= PlanetB= LivesC= Description)无法按预期工作:

我期待/想要的DolphinLivesDescription.

显然,以下程序可以工作,但它需要一个显式实例化Descriptionfor Dolphin

ps 令人费解的是,如果(在第一个程序中)我没有声明:

然后 ghc 抱怨:

如果 ghc没有在for的(自动)推导中使用它,instance Lives Dolphin where它会抱怨缺少,这似乎很奇怪。DescriptionDolphin