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