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?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage