我正在尝试创建一个包含子列表的列表,比如[1, 2, [3, 4], [3, [4, 5]]].
好像我应该定义一个新类型.我试过了:
data NestedList a = Int a | List [NestedList a]
Run Code Online (Sandbox Code Playgroud)
但我认为它错了,或者我不知道如何使用它.我对Haskell很新,我不确定这个表达式的含义.
这是否意味着这是有"型" Int与参数a和一个"型" List与参数[NestedList a]?
data上面的表达式取自99 Haskell问题的第7次练习的解决方案
(**)展平嵌套列表结构.
Run Code Online (Sandbox Code Playgroud)data NestedList a = Elem a | List [NestedList a] flatten :: NestedList a -> [a] flatten (Elem x) = [x] flatten (List x) = concatMap flatten x
但是当我打电话给我时flatten [[1,2], 3],ghci我得到了错误
couldn't match expected type 'NestedList a0' with …Run Code Online (Sandbox Code Playgroud)