だから私は Haskell を学んでいて、タイプ (Tree (a,b)) のツリーを取り、'a' と 'b' が整数で、解凍された 2 つのツリーのリストを返す treeunzip 関数を実装する必要があります。は (ツリー a、ツリー b) です。
2 つのツリーのうちの 1 つを取得できますが、それらをリストにまとめることはできません。私が思いついたのはこれです:
treeunzip :: (NewTree) -> (treeunzipL, treeunzipR)
NewTree は次のように定義されます。
data NewTree = NewLeaf | NewNode Int Int NewTree NewTree deriving Show
ツリーは次のように定義されます。
data Tree = Leaf | Node Int Tree Tree deriving Show
ここにtreeunzipLとtreeunzipR関数がありますが、それが重要かどうかはわかりません.
treeunzipL :: (NewTree) -> (Tree)
treeunzipL NewLeaf = (Leaf)
treeunzipL (NewNode x y lSubTree rSubTree) = (Node x (treeunzipL (lSubTree)) (treeunzipL (rSubTree)))
treeunzipR :: (NewTree) -> (Tree)
treeunzipR NewLeaf = (Leaf)
treeunzipR (NewNode x y lSubTree rSubTree) = (Node y (treeunzipR (lSubTree)) (treeunzipR (rSubTree)))
treeunzip には署名がありますが実装がないため、モジュールをロードするときに明らかにエラーが発生します。これを回避する方法はありますか?
ありがとうございました。