计算列表,并按逆序Prolog列出其子列表

时间:2018-01-06 12:55:43

标签: list prolog reverse sublist

我有一个由整数和整数列表组成的列表,我想以相反的顺序计算列表(每个子列表都颠倒过来)

%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).

如何按相反的顺序计算子列表?

1 个答案:

答案 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).

这是我找到的工作版本。