私は非手続き型言語から私の試験を準備しています。私はテストのタスクの例を持っており、私はそれを解決する方法を知らない。ハスケル - 予約番号ツリーの番号
タスクは以下の通りです:行きがけにNumTree a
に番号が付け返します
data Tree a = Nil1 | Node1 a [Tree a]
data NumTree a = Nil2 | Node2 (a,Int) [NumTree a]
書き込み機能
numberTree :: Num a => Tree a -> NumTree a
:
は2つのツリー構造を考えます。
私はこれを試しましたが、続ける方法はわかりません。
numberTree tree = numberTree' tree 1
numberTree' :: Num a => Tree a -> Int -> NumTree a
numberTree' Nil1 _ = Nil2
numberTree' (Node1 num list) x = (Node2 (num,x) (myMap x numberTree list))
私はそれが木とacumulated行きがけの数を返す必要がありますので、このmyMap
ような何かを書く方法を知らないが、私はこれを行う方法を知りません。
ご提案は大歓迎です。
「Num a」制約が必要な理由はわかりません。 – melpomene
あなたのヘルパー関数は 'numberTree ':: Tree a - > Int - >(NumTree a、Int)'型を持つべきだと思います。 – melpomene
ありがとう、しかし、私はそれが 'numberTree 'だと思う::木 - > Int - > NumTree a'かどうか? – Vojacejo