问题标签 [derived-instances]

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 投票
4 回答
1313 浏览

haskell - 在 Haskell 中导出任意函数

在 Haskell 中使用派生实例时,是否可以为任意类型派生函数,或者我们是否仅限于特定函数?

0 投票
3 回答
54348 浏览

haskell - 在 Haskell 中推导是如何工作的?

Haskell 中的代数数据类型(ADT) 可以通过派生某些类型类(如Show,自动成为它们的实例。Eq

我的问题是,这是如何deriving工作的,即 Haskell 如何知道如何为派生 ADT 实现派生类型类的功能?

另外,为什么deriving仅限于某些类型类?为什么我不能编写自己的可以派生的类型类?

0 投票
2 回答
107 浏览

c# - 在 C# 中处理指定的成员类

在构建类结构时,我希望派生类可能拥有派生成员类。例如:

这被严重地过度简化了,但确实说明了这一点。现在假设有事件等,我想在基类构造函数中附加公共事件,在派生构造函数中附加专用事件。例如,棋子和棋子都可能具有“捕获”事件和“移动”事件。我想将它们附加到基本构造函数中。但是,诸如“castled”之类的特定事件将仅附加在特定构造函数中。

我遇到的问题是基本构造函数似乎只能在派生构造函数之前运行。我如何实现这一点,以便在调用基本“游戏”构造函数以附加到事件之前实际实例化“游戏部件”。

我的直觉表明,最好通过从构造函数中删除该功能并简单地拥有一个“Attach()”成员函数并在那里处理它来更好地处理。但是,我想确保我朝着正确的方向前进,因为在构造函数中似乎应该有一种方法可以做到这一点。

0 投票
1 回答
1384 浏览

haskell - 构造函数中的不可见/隐藏字段

我正在学习 Learn You a Haskell for Great Good,我已经达到了第 8.4 节,“派生实例”。在本节中,有以下数据类型声明:

在尝试的同时

我收到以下错误:

通过更正我删除了错误lastnamelastName

问题:

在错误消息中,该词(visible)向我暗示必须有可能将字段声明为 hidden / invisible。这是正确的还是不正确的?如果是,我如何将构造函数中的字段声明为隐藏,以及需要声明隐藏字段的一般场景是什么?如果您可以通过给出一个简单的使用示例来解释这一点,那将不胜感激。

注意:我在 LYAH 中找不到任何关于隐藏或不可见字段的参考/详细信息。

0 投票
2 回答
1172 浏览

haskell - haskell enum - 如果值构造函数需要值而不是空值,该怎么办?给出了需求场景

LYAH派生实例上说

[...] 所有的值构造函数都是空的(不带参数,即字段),我们可以将其作为 Enum 类型类的一部分。

现在,如果我需要几个月,那将是

我的问题是:

  1. 每个月在哪里存储 Max Days 值?
  2. 如果是闰年,如何提及和控制二月份的月份,那么二月份的 maxDays 是 29 天,否则它将是 28 天?

在 Java 中,可以编写如下代码:

0 投票
1 回答
452 浏览

haskell - 有没有一种方法可以使用 Derive 和 Template Haskell 或其他方式为 Vinyl 记录类型派生二进制实例

我一直在试用Vinyl 包,它使用类型级别的种类来创建具有字段级别多态性和自动提供镜头的记录结构。这两个功能对我的项目来说都非常方便,因为前者允许记录结构是彼此的子类型而不会发生名称冲突,而后者则大大简化了嵌套结构的更新。

问题来自序列化结果结构。通常我使用 Data.DeriveTH 自动派生 Binary 实例,但它似乎无法处理这些结构。以下代码

导致 GHCI 中出现此错误

这似乎与 Derive Convert 模块中的这段代码有关:

现在我真的不知道如何阅读 Template Haskell,所以我在这里无法取得太大进展。我突然想到,我提供的是类型同义词而不是数据类型,这可能会破坏它,所以我尝试将它包装在一个新类型中:

这导致了这个更加迟钝的错误:

查看 Convert.hs 我们有

现在我猜测问题出在 GHC 7.6 引入了 Derive 模板 Haskell 没有考虑到的新语言结构,从而导致了非详尽的模式。

所以我的问题是,是否有一些方法可以通过添加到 Derive 或从 Vinyl 记录类型编写我自己的派生,或类似的东西?如果乙烯基的好处不得不与手写所有序列化进行权衡,那将是一种耻辱。

0 投票
1 回答
350 浏览

objective-c - 继承 .m 文件中声明的方法

我现在知道 Objective-C 中没有受保护的方法,这是我的问题。我有两个具有许多共享功能和属性的视图控制器。我的愿景是拥有一个 BaseViewController 来保存共享方法和属性,并且两个类将继承并覆盖所需的功能,同时使用相同的变量, 我不希望通过将共享函数放在 . h 文件

为了帮助澄清我的问题,我正在添加代码:)

调用[super setBtns:p_btns];引发错误:

DerivedGameViewController.m:No visible @interface for 'BaseViewController' declares the selector 'setBtns:'

我怎样才能做到这一点?有人可以发布一个片段或指出我的错误(在代码或概念中)。

0 投票
1 回答
938 浏览

haskell - 如何让 GHC 在上下文中为带有 Typeable 的 GADT 生成 Data.Typeable 实例?

假设我有以下代码:

然后,以下实例声明有效,对没有约束t

并做我期望它做的事情。


但是下面的实例声明不起作用:

由于 GHC - 我正在使用 7.6.1 - 抱怨说:

当然,添加Typeable t到上下文中是可行的。但是添加以下实例也是如此:

有没有办法让 GHC 为我编写后一个实例?如果是这样,怎么做?如果不是,为什么不呢?

我希望 GHC 能够Typeable从构造函数的上下文中提取约束Wrap,就像它对Eq约束所做的那样。我认为我的问题归结为 GHC 明确禁止写作deriving instance Typeable (Wrapper t),并且标准(Typeable1 s, Typeable a) => Typeable (s a)实例无法“查看内部”s a来查找Typeable a字典。

0 投票
1 回答
73 浏览

derived-instances - 4 处理器/32 核服务器上的多个 SQL 标准实例

我们有一个大型 4 处理器/32 核服务器,数据中心有 192GB 可用内存,还有超过 20 个小型 SQL 标准数据库可供整合。它们是用于第三方应用程序的 SQL 2012 和 2008 R2 的混合体。

简单地在服务器上安装两个 SQL Standard 实例是否有任何问题 - 一个用于 2012,一个用于 2008 R2?每个实例将使用 192GB 和 16 个内核中的多达 64GB。如果我们对 Enterprise 执行此操作,则许可将是一笔财富,并且不需要 Enterprise 功能。

0 投票
3 回答
335 浏览

haskell - 使用构造函数的一部分在 Haskell 数据中派生实例

我需要为数据派生Eq,但对于某些构造函数,我想忽略一些字段。数据用于表示 DataTypes(我们正在开发一个编译器):

我需要从它出现的每个构造函数中忽略该Width 字段