如何定义嵌套列表

时间:2012-08-23 13:25:47

标签: haskell types

尝试在this page解决练习7我想定义数据类型以写出一些值,如:

(List [Elem 1, List [Elem 2, List [Elem 3, Elem 4], Elem 5]])

嵌套列表,任何长度,任何深度。

我尝试使用此代码:

data List a = Elem a | List [List a]

但它没有编译:

Parse error: naked expression at top level

怎么做?

1 个答案:

答案 0 :(得分:7)

而不是包含此文件的文件:

data List a = Elem a | List [List a]
(List [Elem 1, List [Elem 2, List [Elem 3, Elem 4], Elem 5]])

尝试包含以下内容的文件:

data List a = Elem a | List [List a]
sampleListValue = List [Elem 1, List [Elem 2, List [Elem 3, Elem 4], Elem 5]]

顺便说一下,一个非常相似的类型也可用in the standard libraries(我知道你不想使用它,因为它是一个学习练习,但请记住它是可用的。)