printtree_3( bt(Label,[],[]) ).
printtree_3( bt(Label,Left,Right) ) :-
printtree_3( Left ),
printtree_3( Right ),
printlabel( Label ).
printlabel( X ) :- write( X ), write( ' ' ).
Я впервые пытаюсь обойти дерево в прологе, и я подумал, что сделаю это, напечатав дерево с чужим кодом, чтобы увидеть, как оно работает лично. Проблема в том, что при попытке запустить этот код я всегда получаю «False» от компилятора swipl.
Например.
?- printtree_3(a(b,c,d)).
возвращает false вместо печати дерева. Я думаю, что мой предикат неправильный, но я не уверен. Опять же, я не беру кредит на предоставленный код, я просто хочу запустить его, чтобы я мог экспериментировать. Если кто-нибудь может объяснить, почему это не работает, я был бы очень благодарен.