このディレクトリの索引

http://pc11.2ch.net/test/read.cgi/db/1252492296/290
# tblA 
# pkey|value 
# ----+----- 
# 1  |a 
# 2  |b 
# 
# tblB 
# pkey|value 
# ----+----- 
# 1  |c 
# 
# ・欲しい結果 
# tblA 
# pkey|value 
# ----+----- 
# 1  |c 
# 2  |b 

tblA(1,a).
tblA(2,B).

tblB(1,c).

update(_対象述語/Arity1,_キー位置1,_被置換項位置,_置換指定述語/Arity2,_キー位置2,_置換項位置) :-
  length(L1,Arity1),
  length(L2,Arity2),
  P1 =.. [_対象述語|L1],
  P2 =.. [_置換指定述語|L2],
  list_nth(_キー位置1,L1,A),
  list_nth(_キー位置2,L2,A),
  list_nth(_置換項位置,L2,B),
  call(P2),
  call(P1),
  retract(P1),
  ならびの位置指定置換(_被置換項位置,B,L1,L3),
  P3 =.. [_対象述語|L3],
  asserta(P3).