我有一个由整数和整数列表组成的列表,我想以相反的顺序计算列表(每个子列表都颠倒过来)
%addToEnd(E:number,L:list,LR:list)
%addToEnd flow model(i,i,o)
addToEnd(E,[],[E]).
addToEnd(E,[H|T],[H|TR]):-
addToEnd(E,T,TR).
%reverse(L:list,LR:list)
%reverse flow model(i,o)
reverse([],[]).
reverse([H|T],L):-
reverse(T,LR),
addToEnd(H,LR,L).
如何按相反的顺序计算子列表?
答案 0 :(得分:0)
reverse([H|T],A,R):-
number(H),
reverse(T,[H|A],R).
reverse([H|T],A,R):-
is_list(H),
reverse(H,[],X),
reverse(T,[X|A],R).
reverse([],A,A).
这是我找到的工作版本。