お題
ツリーの要素を全て9に置換する。
解答
述語を動的に定義
?- assertz(replace_to_nine(X,9)).
genutilsパッケージにあるtreeライブラリをインストール
?- pack_list(genutils).
?- consult('/Applications/SWI-Prolog.app/Contents/swipl/pack/genutils/prolog/data/tree.pl').
要素を全て9に置換
?- maptree(replace_to_nine, node(3, [node(1,[node(4,[]), node(1,[])]),node(5, [node(9,[node(2, [])]), node(6,[node(5,[])])])]), node(B, BX)).
B = 9,
BX = [node(9, [node(9, []), node(9, [])]), node(9, [node(9, [node(9, [])]), node(9, [node(9, [])])])].
?-