Prolog - niezwykła składnia dla list

Znalazłem nieznany fragment składni Prologu w pracy Lee NaishaProgramowanie logiki wyższego rzędu w Prologu. Oto pierwsza próbka kodu z papieru:

<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>

Moje zamieszanie jest zA.As wisort(A.As, Bs) :-. Z kontekstu topojawia się być alternatywną składnią cons dla list, odpowiednikiemisort([A|As], Bs) :-.

TakżeN.H.L wydaje się być wygodniejszym sposobem powiedzenia[N|[H|L]].

Ale SWI Prolog nie zaakceptuje tej niezwykłej składni (chyba że robię coś złego).

Czy ktoś to rozpoznaje? czy moja hipoteza jest poprawna? Który interpreter Prologu akceptuje tę poprawną składnię?

questionAnswers(3)

yourAnswerToTheQuestion