12得票4回答
匿名记录类型在判别联合体中的应用

F#教程包括以下代码段:/// A record for a person's first and last name type Person = { First : string Last : string } /// define a discriminate...

12得票2回答
值构造函数和元组有什么区别?

据说 Haskell 元组只是代数数据类型的不同语法。同样,有一些例子展示了如何使用元组重新定义值构造函数。 例如,在 Haskell 中,Tree 数据类型可以这样写: data Tree a = EmptyTree | Node a (Tree a) (Tree a) 这些内容可以...

11得票1回答
没有明确证明数据构造函数是单射的情况下进行相等性测试

是否可能定义一个简单的语法概念来表示相等(类似于GHC可能自动为Haskell 98类型派生的Eq实例),而不需要显式地证明每个数据构造器是单射的,或者采取类似的方法,例如定义每个构造器的收缩和使用cong? 换句话说,是否可能更直接地利用数据构造器的单射性,而不必为每个构造器引入一个辅助函...

11得票1回答
在Rust中使用枚举中已存在的类型

假设我有两个结构体:struct BlankDoc { width: u32, height: u32 } struct UrlDoc<'a> { url: &str<'a> } 有没有一种方法可以使用枚举来创建一个Doc类型,该类型将...

11得票2回答
为什么我不能在不同的数据类型之间重复使用相同的值构造函数?

我是Haskell的新手,可能错过了一些非常基本的东西,但我无法在不同的数据类型中重复使用相同的值构造函数。data Colour = Red | Pink | Orange | Yellow data Fruit = Apple | Orange | Banana 这会产生错误,错误信息为...

11得票2回答
在私有数据构造函数上进行模式匹配

我正在编写一个简单的用于网格轴的ADT。在我的应用程序中,网格可能是规则的(坐标之间的间隔是固定的),也可能是不规则的。当然,规则的网格只是不规则网格的一种特殊情况,但在某些情况下区分它们可能是有意义的(例如,进行一些优化)。因此,我将我的ADT声明为以下内容: data GridAxis ...

11得票2回答
有没有使用代数数据类型的Haskell数据库?

我在业余时间用Haskell编写词汇训练器。 我有一个包含单词的文件,其中每个词条都被建模为代数数据类型,看起来像:Word { _frq=1 , _fra="le" , _eng="the; him, her, it, them" , _deu="der,...

11得票2回答
如何最有效地表示有限(非递归)代数类型值?

如何以最高效的方式序列化仅由构造函数组成的有限(非递归)代数数据类型? 例如:p = A | B q q = C | D r | E r = F | G 手动枚举这个非常小的定义的所有有效组合是可能的:A 0x00 B C 0x01 B D F 0x0...

11得票3回答
我该如何让我的Haskell函数尽可能地简短?

season 函数使用代数函数,但我觉得代码很重复。 我该如何将其缩短到最短? data Month = Jan | Feb | Mar | Apr | May | June | July | Aug | Sept| Oct | Nov | Dec deriving (Eq,...

10得票4回答
玫瑰树的初等代数

据我了解,来自Haskell的递归数据类型对应于从Hask类别的自函子的初始代数[1, 2]。例如: 自然数,data Nat = Zero | Succ Nat,对应于自函子F(-) = 1 + (-)的初始代数。 列表,data List a = Nil | Cons a (List ...