![]() |
1
6
您的更新的更新。 如果您愿意打开一些扩展,您可以使其工作:
但就我个人而言,我会尝试做一些类似的事情
你的问题是实例头(
也许您可以将类型更改为更像普通列表:
然后您可以有一个实例:
|
![]() |
2
3
问题是在实例声明中: instance (Show a, Show b) => Show (OptionList a b) where show (OptionList a EmptyOpt) = "{" ++ (show a) ++"}" show (OptionList EmptyOpt b) = "{" ++ (show b) ++"}" show (OptionList a b) = "{"++ (show a) ++ ", " ++ (show b) ++"}" show EmptyOpt = ""
你
使用数据构造函数
因此,Haskell正确地推导出,您实际上定义了
所以我不清楚你的目标是什么;将其修改为:
也不会有帮助,因为结构是递归的,因此您将定义具有无限递归深度的实例。 在我看来,唯一合理的是,您的数据定义是错误的,应该是这样的:
在这种情况下,您可以将其定义为:
或者沿着这些线的东西。 |
![]() |
3
0
我的想法是创建一个类型独立的列表。这个列表的元素应该包含声明的任何类型。但我会放弃,做一些类似C联合的事情:
|
![]() |
scottdomini · 匹配在Rust中的某个字段中接受向量的枚举 2 年前 |
![]() |
Averell · Scala-Spark结构上的sql行模式匹配 7 年前 |
![]() |
HegoDamask · (OCaml:非穷举模式匹配) 7 年前 |
![]() |
Anna · 来自列值和regexp表达式的Pyspark字符串模式 7 年前 |
![]() |
Sr7 · 不以序列结尾的字符串的正则表达式模式[重复] 7 年前 |
![]() |
TurtleMan · 如何摆脱OCaml中的特殊字符? 7 年前 |
![]() |
Liisi · 如何使定长向量实例具有应用性? 7 年前 |
![]() |
Yuva · Scala中元组列表的工作-第3部分 7 年前 |