nreverse.pl

来自「PRl教学程序 PRl教学程序 PRl教学程序」· PL 代码 · 共 30 行

PL
30
字号
go:- 
    mklist(500,L),
    statistics(runtime,[_,_]),
    write(L),nl,
    nrev(L,L1),
    write(L1),nl,
    statistics(runtime,[_,T]),
    write('execution time is '),write(T), write(milliseconds).

mklist(N,L):-
    N=:=0,!,
    L=[].
mklist(N,L):-
    L=[N|L1],
    N1 is N-1,
    mklist(N1,L1).

nrev([],L):-
    L=[].
nrev([X|Xs],L):-
    concat(L1,[X],L),
    nrev(Xs,L1).

delay concat(X,Y,Z):-var(X) : {ins(X)}.
concat([],L1,L2):-true :
    L2=L1.
concat([X|Xs],L1,L2):-true :
    L2=[X|L3],
    concat(Xs,L1,L3).

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?