Prologでリストを変更することはできませんが、長さが指定されていないリストを作成することはできます。
main :-
A = [1,2,3,4|_].
nth0/3
次に、 SWI-Prologを使用して要素を挿入できます。
:- initialization(main).
main :-
A = [1,2,3,4|_],
nth0(4,A,5),
writeln(A).
この要素が挿入された後、A = [1,2,3,4,5|_]
。
リストの最後にアイテムをインプレースで追加する関数を定義して、次のように使用することもできます。
:- initialization(main).
append_to_list(List,Item) :-
List = [Start|[To_add|Rest]],
nonvar(Start),
(var(To_add),To_add=Item;append_to_list([To_add|Rest],Item)).
main :-
A = [1,2,3|_],
append_to_list(A,4),
append_to_list(A,4),
writeln(A).
この例ではA = [1,2,3,4,4|_]
、これら2つの項目の後に追加されます。