有谁能告诉我在哪里可以找到关于Prolog输入和输出的精彩文档?我需要根据一些事实和规则向用户提出一些问题。例如:
best_team(bestteam).
在SWI-Prolog中询问:你能告诉客人最好的团队名称吗?
所以用户可以像bestteam
那样编写,我的Prolog回答例如:你是对的!
这样的事情。
感谢。
答案 0 :(得分:2)
显示的示例可以使用基本I / O例程write/1
,read/1
和nl/0
完成:
best_team(bills).
main :-
repeat,
write('Can you guest what the best team name is?'), nl,
read(X),
best_team(X),
write('You are right!'), nl, !.
| ?- main.
Can you guest what the best team name is?
giants.
Can you guest what the best team name is?
bills.
You are right!
yes
| ?-
这很容易扩展到一个"你错了!"错误回复的消息。一种方法是:
main :-
repeat,
write('Can you guest what the best team name is?'), nl,
read(X),
( best_team(X)
-> write('You are right!'), nl, !
; write('You are wrong!'), nl, fail
).
这将导致:
| ?- main.
Can you guest what the best team name is?
giants.
You are wrong!
Can you guest what the best team name is?
bills.
You are right!
yes
| ?-
如果您想输入标点符号,大写单词等输入,那么您需要使用其他谓词。这个主题有一个recent question posted。