Prolog 中的输入输出操作详解
1. 引言
在与 Prolog 程序交互时,我们通常通过向 Prolog 系统提问的方式来提供信息,也通过提问让 Prolog 以“X = answer”的形式显示变量的值。多数情况下,这种直接的交互方式足以确保程序正常运行。但有时,我们希望编写一个能主动与我们对话的 Prolog 程序。
2. 历史事件数据库示例
假设我们有一个 16 世纪世界事件的数据库,以包含日期和标题的事实形式存储。日期用整数表示,标题用原子列表表示。例如:
event(1505, ['Euclid', translated, into, Latin]).
event(1510, ['Reuchlin - Pfefferkorn', controversy]).
event(1523, ['Christian', 'II', flees, from, 'Denmark']).
如果我们想了解特定日期的事件,可以这样提问:
?- event(1505, X).
Prolog 会给出如下回复:
X = [Euclid, translated, into, Latin]
将历史标题表示为原子列表的好处是,我们可以进行“搜索”以找出某些关键事件发生的日期。例如,定义一个名为 when 的谓词:
Prolog输入输出操作详解与应用
超级会员免费看
订阅专栏 解锁全文
24

被折叠的 条评论
为什么被折叠?



