私は、バイナリツリーを印刷する機能を構築しようとしているので、私はこれでした:show instaceを呼び出してバイナリツリーを表示するにはどうしたらいいですか?
instance Show a => Show (Tree a) where
show Null = "_"
show (Nod x e d) = "(" ++ show x ++ " " ++ show e ++ " " ++ show d ++ ")"
left :: Tree a -> Tree a
left (Nod x e d) = show e
を、私はこのメッセージを受信しています:
Couldn't match type `[Char]' with `Tree a' Expected type: Tree a Actual type: String In the return type of a call of `show' In the expression: show e In an equation for `left': left (Nod x e d) = show e Failed, modules loaded: none.
ヒント:あなたの 'left'関数の結果の型は何でしょうか、あなたが書いた型シグネチャには何が書かれていますか? – duplode
私はツリーの左側を取得しようとしているので、ツリーを受け取って別のツリーである左の子を返します – Marcio
左のサブツリーを返すように 'left'をしたいのであれば、 'show'は' String'を生成します。 – duplode