ダイナミックツリーの要素のリストを取得したいと思います。ダイナミックツリーからハスケルリストへ
Iは、ノードの二つのタイプがあります二つの数字と子供/サブツリーの任意の量を記憶することができる
- Indexnodes、(いかなるサブツリーも許可されていない)数を格納することができる
- Datanodesを、。
data MultTree a = DataNode a | IndexNode a a [MultTree a] deriving Show
t1 :: MultTree Int
t1 = IndexNode 3 42 [IndexNode 3 15 [DataNode 3, DataNode 11, DataNode 12], IndexNode 9 42 [DataNode 42, DataNode 23]]
dataList:: MultTree -> [DataNode] -> [Int]
dataList[] = []
dataList(x:xs) = x : dataList xs
リストには、すべてのdatanodesを含まなければなりません。したがって、dataList t1
の場合、リストは[3, 11, 12, 42, 23]
のようになります。
私がコードしている機能dataList
は機能しません。
誰かが私がそれをどのように解決できるか考えていますか?
の型シグネチャの型シグネチャは 'dataList'は意味をなさない。あなたはそこから始めるべきです。 (また、あなたの実装は効果的に 'id :: [a] - > [a]'であり、何もしません) – melpomene
最初に単純なバージョンを定義してみてください。 '[42]'を返すために 'dataList(DataNode 42)'を得るために何を書く必要がありますか? – melpomene