Prolog - ungewöhnliche Cons-Syntax für Listen
In Lee Naishs Aufsatz bin ich auf ein ungewohntes Stück Prolog-Syntax gestoßenÜbergeordnete Logikprogrammierung in Prolog. Hier ist das erste Codebeispiel aus dem Papier:
<code>% insertion sort (simple version) isort([], []). isort(A.As, Bs) :- isort(As, Bs1), isort(A, Bs1, Bs). % insert number into sorted list insert(N, [], [N]). insert(N, H.L, N.H.L) :- N =< H. insert(N, H.LO, H.L) :- N > H, insert(N, LO, L). </code>
Meine Verwirrung ist mitA.As
imisort(A.As, Bs) :-
. Aus dem Zusammenhang ist eserscheint um eine alternative Cons-Syntax für Listen zu sein, das Äquivalent vonisort([A|As], Bs) :-
.
AuchN.H.L
scheint eine bequemere Art zu sagen zu sein[N|[H|L]]
.
Aber SWI Prolog akzeptiert diese ungewöhnliche Syntax nicht (es sei denn, ich mache etwas falsch).
Kennt jemand das? ist meine Hypothese richtig? Welcher Prolog-Interpreter akzeptiert das als gültige Syntax?