如何在idris中对数据类型设置类型约束

时间:2014-07-27 10:36:27

标签: idris

在idris中,如何约束代数数据类型中的参数类型?

在haskell,我会做的:

data Foo = Bar {x :: Integer, str :: String}

我可以在伊德里斯那样做吗?

1 个答案:

答案 0 :(得分:4)

有两种选择:数据类型

data Foo = Bar Int String

或记录

record Foo : Type where
  Bar : (x : Int) -> (str : String) -> Foo

两者都有一些限制:在数据类型的情况下,您没有命名访问者,如果是记录,您只能有一个构造函数。

您可以在{{3>}的 3.2数据类型 3.11相关记录

部分找到有关数据类型和记录的更多信息