List 如何在prolog中匹配精确列表
请帮忙List 如何在prolog中匹配精确列表,list,prolog,match,dcg,List,Prolog,Match,Dcg,请帮忙 a是adenin,但那些非规范的基是什么?无论如何,让我们用一个简单的方法 用法: ?- phrase(withprotein(Protein), [q,w,e,a,s,d,f,w,o,e]). Protein = annexin 字符串包含蛋白质当且仅当其定义是字符串的子列表时: protein(annexin, [a,s,d,f]). has_protein(Protein, List) :- protein(Protein, ProteinDefinition),
a
是adenin,但那些非规范的基是什么?无论如何,让我们用一个简单的方法
用法:
?- phrase(withprotein(Protein), [q,w,e,a,s,d,f,w,o,e]).
Protein = annexin
字符串包含蛋白质当且仅当其定义是字符串的子列表时:
protein(annexin, [a,s,d,f]).
has_protein(Protein, List) :-
protein(Protein, ProteinDefinition),
sublist(ProteinDefinition, List).
关于这个问题,你能再明确一些吗?似乎你想在facts“蛋白质”中搜索那些包含(子列表)给定序列的蛋白质。是吗?它是非终端
的名称//0
这意味着:“任何可能的空序列”@NorwahidaShamsuddin:你为什么试图删除的定义//0
?
protein(annexin) -->
[a,s,d,f].
withprotein(Protein) -->
...,
protein(Protein),
... .
... --> [] | [_], ... .
?- phrase(withprotein(Protein), [q,w,e,a,s,d,f,w,o,e]).
Protein = annexin
protein(annexin, [a,s,d,f]).
has_protein(Protein, List) :-
protein(Protein, ProteinDefinition),
sublist(ProteinDefinition, List).