0

我正在使用 prolog (swipl) 实现一个自然语言生成器。

我有一个 .txt 测试文件,其中包含一些我应该能够以这种格式生成的短语:

[goal,identify,type_object,animal,object,cat,event,ran away,when,[last,mont],where,[]]
[which,cats,ran away,last,month,?]

[goal,identify,type_object,animal,object,dog,event,ran,when,[last,mont],where,[]]
[which,dogs,ran away,last,year,?]

等等...

我如何使用 plunit (或其他东西?)来检查我的测试文件的所有元素是否都在我的输出文件中返回真/假?

4

1 回答 1

1

read/1可能是您正在寻找的:

假设我定义了一个事实p/1

p([a,b,c]).

|:然后我可以从标准输入中读取一个术语并进行比较(以 SWI Prolog开头的行表示为用户输入,您的实现可能会有所不同):

?- read(X), p(X).
|: [a,b,c].

X = [a, b, c].

?- read(X), p(X).
|: [].

false.
于 2018-12-10T19:04:20.413 回答