我正在使用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(或其他方法?)检查测试文件中的所有元素是否都在返回true / false的输出文件中?
答案 0 :(得分: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.