0

このような文法規則を節に翻訳したい

char(C) --> [C], { code_type(C, graph), \+ memberchk(C, "()") }.

しかし、動作しません

char(C,In,Out):-
   In=[C|Out],
   code_type(C, graph), 
   \+ memberchk(C, "()").
4

1 に答える 1

1

組み込みの Prolog 述語を使用して、expand_term/2文法規則を節に展開できます。

?- expand_term((char(C) --> [C], { code_type(C, graph), \+ memberchk(C, "()") }), Clause).
Clause = (char(C, [C|_G1665], _G1651):- (code_type(C, graph), \+memberchk(C, [40, 41])), _G1651=_G1665).
于 2013-07-12T10:27:02.793 に答える