具有变量名称的Prolog规则断言

时间:2018-01-03 12:21:24

标签: prolog prolog-assert

我尝试在SWI-Prolog中自动断言一些规则:

BitmapDescriptorFactory.fromResource(R.drawable.your_icon)

这很好用,但rulesDB.pl中的断言结果不使用它们被替换为内存位置(?)的变量generate_rule_len(FG,SG):- length(FG,L),length(SG,L0), Head = input_len(FG,SG,FS,SS,X), Body = (length(FG,L1),L1 is L, length(SG,L2), L2 is L0, X = SS), % Rule = (Head :- Body), \+Rule, assertz(Head :- Body), append('rulesDB.pl'), writeq(Head :- Body),write('.'),nl, told. 的名称,如下所示:

FG,SG,FS,SS,X

是否可以使用变量的名称?

另外我想防止重复生成的规则。因此我尝试了input_len(_3078,_3080,_3082,_3084,_3086):- length(_3078,_3098),_3098 is 2,length(_3080,_3122),_3122 is 2,_3086=_3084. ,但这给了我一个Rule = (Head :- Body), \+Rule,。 谁能告诉我我的代码有什么问题?

提前致谢!

0 个答案:

没有答案