このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1286978599/151
#  次のような宿題が出たのですが、まったく分かりません。 
#  ぜひ教えてください。お願いします。 
#   
#  • void concat(struct node *p, struct node *q) 
#  ノード*p以降のリストの後に,ノード*q以降のリストを連結 
#  する関数 
#   
#  • int length(struct node *p) 
#  ノード*p以降のリストの長さを返す関数 
# 
# 

'ノード*p以降のリストの後に,ノード*q以降のリストを連結'(L1,_ノードp以降のならび,L2,_ノードq以降のならび,L) :-
        append(_,_ノードp以降のならび,L1),
        append(_,_ノードq以降のならび,L2),
        append(_ノードp以降のならび,_ノードq以降のならび,L).

'ノード*p以降のリストの長さを返す関数'(L,_ノードp以降のならび,Length) :-
        append(_,_ノードp以降のならび,L),
        \+(var(_ノードp以降のならび)),
        length(_ノードp以降のならび,Length).