Я хочу написать функцию toTree, которая преобразует список значений в виде двоичного дерева:Haskell Нет экземпляр, вытекающий из использования «печати»
data Tree a = Leaf | Branch a (Tree a) (Tree a)
tree = Branch 6 (Branch 3 Leaf Leaf) (Branch 9 Leaf Leaf)
split :: [a] -> ([a], [a])
split lst = splitAt (((length lst) + 1) `div` 2) lst
toTree :: [a] -> Tree a
toTree (x: xs) = Branch x (toTree xm) (toTree xl) where (xm, xl) = split xs
toTree [] = Leaf
Я не могу понять, почему я получаю эту ошибку на toTree [1,2,3]
No instance for (Show (Tree a0)) arising from a use of `print'
In the first argument of `print', namely `it'
In a stmt of an interactive GHCi command: print it
Я знаю, что это простая ошибка для исправления, но я не могу найти, что вызывает ее. Как я могу решить эту проблему?
Ok спасибо за помощь мне. Я все еще новичок в языке. – donth77
нет проблем - продолжайте идти, это того стоит - кстати: это такая незначительная деталь - остальная часть вашего кода работает в конце концов;) – Carsten
как я могу напечатать 'Leaf' в одиночку? – zhirzh