如何在prolog中输出文本?
我是Prolog新手,我正在尝试编写一些输出 我有一个函数:如何在prolog中输出文本?,prolog,Prolog,我是Prolog新手,我正在尝试编写一些输出 我有一个函数:父(X,Y)如果X是Y的父,那么这是真的,所以发生了: ?- father(homer,bart) true 我该如何做这样的事情: doTests :- write('Test1 expect true ==> '),(write father(homer,bart)),nl, write('Test2 expect false ==> '),(write father(homer,nelson)),nl,
父(X,Y)
如果X是Y的父,那么这是真的,所以发生了:
?- father(homer,bart)
true
我该如何做这样的事情:
doTests :-
write('Test1 expect true ==> '),(write father(homer,bart)),nl,
write('Test2 expect false ==> '),(write father(homer,nelson)),nl,
write('Test3 expect true ==> '),(write father(abe,homer)).
所以我得到了这样的东西
?- doTests.
Test1 expect true ==> true
Test2 expect false ==> false
Test3 expect true ==> true
? testfather:-
父亲(荷马,巴特),
writeln(“是的,荷马是巴特的父亲”)
如果荷马不是巴特的父亲,你就永远也读不到那本书
如果要打印变量,请执行以下操作
父亲:-
父亲(X,巴特),
写(X),
写(‘是巴特之父’),
nl.测试父亲:-
父亲(荷马,巴特),
writeln(“是的,荷马是巴特的父亲”)
如果荷马不是巴特的父亲,你就永远也读不到那本书
如果要打印变量,请执行以下操作
父亲:-
父亲(X,巴特),
写(X),
写(‘是巴特之父’),
nl.我会将模式分解为:
:- meta_predicate oneTest(+,:).
oneTest(Label, Pred) :-
(call(Pred) -> R = true ; R = false), format('~s ==> ~s~n', [Label, R]).
doTests :-
oneTest('Test1 expect true', father(homer,bart)),
oneTest('Test2 expect false', father(homer,nelson)),
oneTest('Test3 expect true', father(abe,homer)).
我会将模式分解为:
:- meta_predicate oneTest(+,:).
oneTest(Label, Pred) :-
(call(Pred) -> R = true ; R = false), format('~s ==> ~s~n', [Label, R]).
doTests :-
oneTest('Test1 expect true', father(homer,bart)),
oneTest('Test2 expect false', father(homer,nelson)),
oneTest('Test3 expect true', father(abe,homer)).