我怀疑 λProlog 的主要实现 teyjus 可能有点废弃软件,但 λProlog 是一个迷人的 Prolog,它应该让你使用高阶逻辑、假设推理和其他东西,这就是为什么我试图用它。
文件“example.sig”:
sig example.
kind person, language type.
type hans person.
type german, french, italian language.
type grade person -> o.
type take person -> language -> o.
文件“example.mod”:
module example.
(grade P) :- (take P german), (take P french).
(grade P) :- (take P german), (take P italian).
take hans french.
但是,当我编译和加载它时,虽然它似乎可以工作,但假设的推理查询被拒绝:
[example] ?- take X Y.
The answer substitution:
Y = french
X = hans
More solutions (y/n)? y
no (more) solutions
[example] ?- grade X.
no (more) solutions
[example] ?- (take hans german) => (grade hans).
(1,19) : Error : Symbol => is not permitted within terms
我期待在最后一个“是”。我究竟做错了什么?