我正在寻找方法使Prolog程序"看起来"更像是第一顺序逻辑.我想要的东西是例如:
或者是否有其他软件已经实现了这一点?
提前致谢!
/ JC
小智 5
在SWI-Prolog上使用term_expansion/2是Prolog的宏:
% calc.pl
:- op(1200,xfx,--).
term_expansion(A--B,B:-A).
integer(I)
--%----------------------- (E-Int)
I => I.
E1=>I1, E2=>I2, I is I1+I2
--%----------------------- (E-Add)
E1+E2 => I.
:- 1+2+3=>6.
:- 1+2+3=>I,writeln(I).
:- halt.
Run Code Online (Sandbox Code Playgroud)
并运行
$ swipl calc.pl
6
Run Code Online (Sandbox Code Playgroud)