相关疑难解决方法(0)

Prolog - 列表的不寻常利弊语法

我在Lee Naish的论文"Prolog中的高阶逻辑编程"中遇到了一些不熟悉的Prolog语法.以下是本文的第一个代码示例:

% 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).
Run Code Online (Sandbox Code Playgroud)

我的困惑是A.Asisort(A.As, Bs) :-.从上下文来看,它似乎是列表的替代cons语法,相当于isort([A|As], Bs) :-.

N.H.L似乎是一个更方便的方式来表达[N|[H|L]].

但SWI Prolog不接受这种不寻常的语法(除非我做错了).

有谁认出来了吗?我的假设是正确的吗?哪个Prolog解释器接受它作为有效语法?

prolog iso-prolog

27
推荐指数
3
解决办法
4295
查看次数

标签 统计

iso-prolog ×1

prolog ×1