저는 haskell을 배우고 있고 트리의 모든 노드를 인쇄하려고합니다 (높이 = 0 => 리프가있는 트리의 높이에 따라 다름). 그리고 생각, 내가 좋은 기능을 만들지 만, 나는 쇼 기능에 문제가 있습니다.하스켈 트리 - 인스턴스보기
data Tree a = Empty | Node a (Tree a) (Tree a) deriving (Show)
tree4 = Node 1 (Node 2 Empty (Node 0 Empty Empty)) (Node 4 Empty Empty)
tree5 = Empty
heightTree::Tree a -> Integer
heightTree Empty = 0
heightTree (Node x l r) = 1 + max (heightTree l) (heightTree r)
treeLev::Tree a -> Integer -> [a]
treeLev Empty a = []
treeLev (Node x l r) a = if a == heightTree l || a == heightTree r then [x] else treeLev l (a-1) ++ treeLev r (a-1)
내가
이*Main> treeLev tree4
<interactive>:105:1:
No instance for (Show (Integer -> [Integer]))
arising from a use of `print'
Possible fix:
add an instance declaration for (Show (Integer -> [Integer]))
In a stmt of an interactive GHCi command: print it
*Main>
사람이 설명 할 수 사용하고 내가 잘못 :)하고 있어요?
'treeLev'는 두 개의 인수를받습니다. 그래서'treeLev tree4'는 함수입니다. 기능을 인쇄 할 수 없습니다. – user3237465