如何在Idris中定义非泛型递归数据类型?

时间:2018-03-15 15:44:39

标签: idris

这是我的第一行Idris代码。当我查阅文档时,所有内容都显示正确:

Idris> data T = Foo Bool | Bar (T -> T)
(input):1:6:
  |
1 | data T = Foo Bool | Bar (T -> T)
  |      ^
unexpected reserved data
expecting dependent type signature

这让我觉得我可能需要以某种方式声明T是一个符号?

1 个答案:

答案 0 :(得分:2)

它在Idris源文件中按预期工作。但是,在REPL中,声明需要以:let命令为前缀:

:let data T = Foo Bool | Bar (T -> T)

感谢您的提问。我学到了一些东西试图回答它。