gpt4 book ai didi

序言 - 断言和撤回

转载 作者:行者123 更新时间:2023-12-03 10:38:59 24 4
gpt4 key购买 nike

我想知道,我知道你可以使用 assert添加事实或规则或其他任何内容,如果您已将谓词声明为 -:dynamic ,但这仅允许所做的更改仅保留在该 session 中,例如如果关闭 Prolog 窗口,则数据库更改将丢失。

所以我想知道,有什么办法可以让 assertretract谓词可以对 Prolog .pl 文件进行永久更改吗?

谢谢

最佳答案

我可以建议你一个非常简单的方法来做到这一点。

1 ?- assert(a(1)).
true.

2 ?- assert(a(2)).
true.

3 ?- assert(a(3)).
true.

4 ?- a(A).
A = 1 ;
A = 2 ;
A = 3.

5 ?- tell('a_db.txt'), listing(a), told.
true.

然后关闭 session ,重新打开。
1 ?- a(A).
ERROR: toplevel: Undefined procedure: a/1 (DWIM could not correct goal)
2 ?- ['a_db.txt'].
% a_db.txt compiled 0.00 sec, 516 bytes
true.

3 ?- a(A).
A = 1 ;
A = 2 ;
A = 3.

4 ?- listing(a).
:- dynamic a/1.

a(1).
a(2).
a(3).

true.

关于序言 - 断言和撤回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2435237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com