如何定义嵌套列表

Asl*_*986 2 haskell types

试图在这个页面上解决练习7 我想要定义数据类型来写一些值,如:

(List [Elem 1, List [Elem 2, List [Elem 3, Elem 4], Elem 5]])
Run Code Online (Sandbox Code Playgroud)

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

我试过这段代码:

data List a = Elem a | List [List a]
Run Code Online (Sandbox Code Playgroud)

但它没有编译:

Parse error: naked expression at top level
Run Code Online (Sandbox Code Playgroud)

怎么做到呢?

Dan*_*ner 8

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

data List a = Elem a | List [List a]
(List [Elem 1, List [Elem 2, List [Elem 3, Elem 4], Elem 5]])
Run Code Online (Sandbox Code Playgroud)

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

data List a = Elem a | List [List a]
sampleListValue = List [Elem 1, List [Elem 2, List [Elem 3, Elem 4], Elem 5]]
Run Code Online (Sandbox Code Playgroud)

顺便说一下,标准库中也有一个非常相似的类型(我知道你不想使用它,因为这是一个学习练习,但要记住它是可用的).