-2

したがって、入力がL=[1,[2,3,4],5]の場合、出力はR = [4,5]になります。通常のリストの最後の要素のコードは

last([X],X].
last([H|T],X):-last(T,X).
4

2 に答える 2

0

これは正確にはエレガントなプロローグではありませんが、あなたが望むことをすると思います:

deeplast([L], X) :-
    deeplast(L, X).
deeplast([X], X) :-
    atomic(X).
deeplast([H|T], X) :-
    atomic(H),
    deeplast(T, X).
deeplast([H|T], X) :-
    compound(H),
    deeplast(H, Y),
    deeplast(T, Z),
    X = [Y, Z].
于 2013-02-17T05:38:54.337 に答える