不完全なリストを差分リストに、またはその逆に変換したい。
これは、通常のリストを差分に変換するコードです。
reg2diff(L,X-Y):-append(L,Y,X).
どうすれば他の方向に進むことができますか?
不完全なリストを差分リストに、またはその逆に変換したい。
これは、通常のリストを差分に変換するコードです。
reg2diff(L,X-Y):-append(L,Y,X).
どうすれば他の方向に進むことができますか?
差分リストが不完全:
inc2diff(L,Z):-
( nonvar(L)
-> ( L=[_|T] -> inc2diff(T,Z) ; L=[] -> Z=[] )
; L=Z
).
として使用します
23 ?- L=[1,2,3|_],inc2diff(L,X).
L = [1, 2, 3|X].
24 ?- L=[1,2,3|Z],inc2diff(L,X).
L = [1, 2, 3|X],
Z = X.
25 ?- L=[1,2,3],inc2diff(L,X).
L = [1, 2, 3],
X = [].
| ?- listing(dl_list),dl_list([a,b,c,d|X]-X,L).
% file: ...util.pg
dl_list(A - [], A).
L = [a,b,c,d]
X = []
yes