我想附加一个像这样的连续列表:
result(R) :- append(A,B,C), append(C,D,E), append(E,F,R).
PS:A,B,D和F是同一规则结果(R)中的另一个谓词的结果(列表)。
例如:A类似于[1,2]
我的目标是获得一个清单。
例子:A是[1,2],B是[3,4],D是[5],F是[6,7],R是[1,2,3,4,5,6] 1,7]
但是当我用trace.
执行此代码时,我收到以下错误:
Fail: (19) append([12|13], 19, _G23439) ? creep
最后一个元素没有追加!这是追加的谓词:
appende([], List, List).
appende([Head|Tail], List, [Head|Rest]) :-appende(Tail, List, Rest).
(为凯特编辑):
这是规则:
s1(X,Y) :-
( ws(X,R) ; 1 is A ),
( ai(X,S) ; 1 is B ),
( py(X,T) ; 1 is C ),
( stat(X,U) ; 1 is D ),
( bdav(X,V) ; 1 is E ),
( ang(X,W) ; 1 is F ),
appende(R,S,RS),
appende(RS,T,RST),
appende(RST,U,RSTU),
appende(RSTU,V,RSTUV),
appende([],RSTUV,RSTUVS),
appende(RSTUVS,[W],Final),
append([],Final,Y),
avg(Y,M),
maplist(=<(10),[M]),
somme([A,B,C,D,E,F],So),
maplist(>=(1),[So]).
追加是:
append([], List, List).
append([Head|Tail], List, [Head|Rest]) :-
append(Tail, List, Rest).
目标是这样的获取Final
列表:[1,2,3,4,5,6]
并将其存储在Y