如何解决如何对变量的出现进行测试?
我在 prolog 中有以下代码,我希望能够测试一个变量的出现:
mon_afn(
afn(
[
sommet(etat(0),[arc(b,etat(0)),arc(a,etat(1))]),sommet(etat(1),etat(2))])
],%liste d'adjacence
etat(0),%etat initial
[etat(2)] %etats acceptant
)).
accepte(AFN,MOT):-forall(AFN,accepte_(AFN,MOT)).
accepte_(AFN,MOT) :-
afn(LISTEADJ,INITIAL,ACCEPTANTS) = AFN,accepte_(MOT,LISTEADJ,ACCEPTANTS,INITIAL).
accepte_([],_,ACC) :-
member(ACC,ACCEPTANTS).
accepte_([LETTRE|MOT],ACC) :-
member(sommet(ACC,L),LISTEADJ),member(arc(LETTRE,D),D).
accepte_2 允许确定一个字符串是否被 NFA 接受,我的 accepte_ / 2 和 accepte_ / 4 谓词按我的意愿工作,但我想要一个 accepte/2 谓词 它将执行以下操作:
? mon_afd(X),accepte(X,['a','b']).
true.
我不想要的:
? mon_afd(X),'b']).
AFN = afn([sommet(etat(0),etat(2))])],etat(0),[etat(2)]);
false.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。