问题标签 [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 - 有没有办法缩短这个派生条款?
有没有办法编写以下内容:
这样该deriving
子句可以以某种方式缩短,如下所示:
如果可能的话,我想避免使用 TH,我很高兴创建一个新类,根据需要将所有这些派生类作为其超类(如上MyOwnClass
所示),但这并不适用于deriving
机制。通过约束种类扩展,我发现你可以这样写:
不幸的是,我不能把它放在deriving
条款中。有什么魔法可以让这一切发生吗?
编辑从评论看来,TH 可能是这里唯一可行的选择。(CPP 宏真的不行!)如果是这样,TH 解决方案的草图将会很高兴看到。
haskell - 为 Linear.V 派生包装器时出现类型检查错误
我正在尝试为Linear.V类型创建一个新类型包装器并派生有用的实例。我正在尝试这个:
尝试 1 - 我认为 GeneralizedNewtypeDeriving 可以,但不:
我收到此错误:
我使用这样的独立派生进行了尝试2:
但后来我得到了一个不同的错误:
我不确定为什么实际上会发生这两个错误。这可以以某种方式完成吗?我对高级类型级别的功能没有那么丰富的经验,到目前为止我也无法真正手动编写这个特定的实例定义,所以我也认为这是一个解决方案。但我更愿意以deriving
某种方式使用该机制,因为它似乎更可重用。
编辑:我已经尝试过这个手动实例声明:
但这会产生以下错误:
在我看来,编译器无法弄清楚Index
两者的V n Foo
and Bar n
is Int
。但我不确定。
haskell - Haskell 中的派生实例
我想使用这样的派生实例:
但我从 GHC 收到:
这种方式对我的项目来说非常方便。我找不到解决方案。
有什么方法可以为此类数据使用派生实例?
haskell - Haskell Labeled AST: No instance for (Show1 (Label a)), 如何构造实例?
我想要一个带注释的 AST,所以我使用以下方法定义了这些递归数据结构Fix
:
我希望能够show
a Labeled a
,但编译器不高兴:
什么是类Show1
,如何定义适当的实例才能显示Labeled a
?
haskell - Haskell 实例为 newtype 读取,它只是一个 int
我是 Haskell 的新手,我希望能够使用新类型,这样我就可以知道什么是什么,但我还必须从字符串中读取它。我有
read "5" :: SpecialId
如果我在 newtype 中派生 Read 它不起作用,我希望能够做到,它只适用于read "SpecialId 5" :: SpecialId
. 我试过了
但这给了我
haskell - 新类型派生 IsSequence
我有一个 newtype X
,它基本上是一个整数列表。我使用 ClassyPrelude 而不是标准 Prelude 并希望派生 IsSequence 类。这使得也有必要派生许多其他类。
语言扩展 GeneralizedNewtypeDeriving 应该允许这样做(这里与 DerivingStrategies 扩展一起使用)。我想:
完整文件:
(所有其他语言扩展似乎都很重要)
MonoTraversable
但是,这会为and产生很多错误消息IsSequence
:
我无法阅读(也许它与默认签名有关?,不知道......)。从派生子句中省略 2 个类会使代码编译。
问题:在这种情况下如何推导出 IsSequence?
出于多种原因,我的用例无法使用类型别名,但我想使用这些类提供的功能。如果无法派生,则有必要自己实现类方法。
c++ - 如何调用派生类operator()?
我想创建一个表达式结构来计算值(通过调用 operator().
expr - 基本表达式类,它应该像 result = expression(100500) 一样工作。const_value - 结构返回常量值。参数 - 返回它的参数(== 函数 ID)。e_add, prod, sub, ... - 不同的功能。
为什么代码调用基类 operator(),但忽略派生结构?
输出:
完整源代码:
idris - 如何在 Idris 中使用“派生”?
我正在尝试在 Idris 中导出 Show、Eq、Ord 等,但以下试验均无效:
线索#1:
得到:
轨迹#2:
得到:
线索#3:
得到:
我已经deriving
在http://docs.idris-lang.org/和 google 上搜索过关键字,甚至在 test/ 目录下的 idris-dev repo 中搜索过,但是没有关于在 idris 中派生的使用演示。任何人都可以帮忙吗?
c++11 - 如何派生 std::vector?
std::vector
我想要一个为我的操作员派生的类[]
如何std::vector
为 C++11 派生所有构造函数和分配运算符?
haskell - 推导后什么时候应该加括号?
我看到两个表情
我在推导后应该使用括号时感到困惑。我知道我们应该在有多个类的地方使用括号和逗号。