3

Haskell の 99 の質問のうちの7 番目の質問に答えています。しかし、私は彼らが型を定義するところまで来ました

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

そして、私の理解では、空のリスト (つまり[]) を処理しません。

しかし、彼らのサンプルテストでは、

*Main> flatten (List [])
[]

このタイプは空のリストをカバーしますか? もしそうなら、なぜですか?

そうでなく、ウェブサイトの間違いである場合、空のリストを処理するネストされたリストタイプをどのように記述しますか?

4

1 に答える 1

6

データ型には、 typeの要素またはNestedList atype の要素が含まれます。Elem aList [NestedList a]

これらの最初のものは、あなたはすでに理解しているようです。ただし、2 番目のものは、引数として のリスト (通常の並べ替え) を持っていますNestedList a。を含む任意のリストを指定できます[]。したがって、、またはと同様に、List []は有効な です。NestedListList[Elem 5]List [Elem 5, List [Elem 3, Elem 2] ]

于 2013-08-30T03:55:25.877 に答える