对于人类来说,做出高阶陈述是非常自然的。例如,你可以这样陈述(使用伪Prolog
语法):
苏格拉底很聪明:
smart(socrates).
约翰是一个男人:
man(john).
苏格拉底认为所有男人都会死:
believes(socrates, (mortal(X) :- man(X))).
如果某人聪明并且相信某事,那么这件事一定是真的:
Y :- smart(X), believes(X, Y).
我查看了几个Prolog
的“高阶”扩展,但它们都无法接受像最后两个例子那样的陈述。
有没有正式的系统允许你做出类似人类的高阶陈述,像这些例子一样?
回答: