%query: inorder(i,o).
inorder(nil,[]).
inorder(tree(L,V,R),I) :-
inorder(L,LI),
inorder(R,RI),
append(LI,[V|RI],I).
append([],X,X).
append([X|Xs],Ys,[X|Zs]) :-
append(Xs,Ys,Zs).
/*TWDESC
inorder traversal for binary trees
*/
/*TWNORMS
norm(treesize_nodes,
"Tree sizes (nodes)",
[
"Counts the term's nodes:",
"|f(t1,...,tn)|",
"=",
"1+|t1|+...+|tn|"
],
[
defsize(nil,1),defsize(tree(L,_,R),1+size(L)+size(R))
]).
*/
/*TWDEMO
selected_norms([treesize_nodes]).
*/