在prolog中将事实置于文件中

时间:2010-05-21 21:31:55

标签: prolog

如何在不删除先前事实的情况下将事实声明为文件?

在下一行中,当我执行两次时,第二个事实会覆盖第一个事实:

tell('animal.txt'),write(Animal),nl,told.

但是,当我使用assertassertz时,它将无效。

请帮帮我。

谢谢:)

1 个答案:

答案 0 :(得分:0)

tell会截断您要写入的文件。

请改用append('animal.txt')。这将写入文件的末尾。

回复your comment

  

我可以把它放在哪里?

您的意思是append/1吗?

问题中的代码不应该放在type/2定义中(附加替换告诉)吗? E.g。

type(1, Name) :-
    append('animal.txt'),
    write(mammal(Name)), nl,
    told.