我的数据库的格式如下:Prolog-追加列表的列表
aminotodna (Amincoacid, [DNA sequence]).
下面是从数据库中的几个例子:
aminotodna(a,[g,c,a]).
aminotodna(a,[g,c,c]).
aminotodna(a,[g,c,g]).
aminotodna(a,[g,c,t]).
aminotodna(c,[t,g,c]).
aminotodna(c,[t,g,t]).
aminotodna(d,[g,a,c]).
aminotodna(d,[g,a,t]).
aminotodna(e,[g,a,a]).
aminotodna(e,[g,a,g]).
aminotodna(f,[t,t,c]).
aminotodna(f,[t,t,t]).
有些氨基酸有多个DNA序列。 这里是我的问题,所以在给定的氨基酸列表中,例如[d,c,e,f]
,我如何将它们的DNA序列附加在一起并给出所有组合,因为有些序列具有多于一个的序列。
如果是只有两个我能做到这一点,它会只是
listamino(X,Y) :-
aminotodna(X,L),
aminotodna(Y,M),
append(L,M,Z),
print(Z).
打;
给出了所有的组合。
我已经厌倦了一个清单做,但是这是我的尝试,并没有工作:
listamino([]).
listamino([H|T]) :-
aminotodna(H,L),
aminotodna(T,M),
append(L,M,X),
print(X).
listamino(T).
您能根据您的样本数据给出您想要的行为示例吗? –
@ScottHunter所以,如果我写了listamino([a,c,e])。它会附加DNA序列,所以结果将是[g,c,a,t,g,c,g,a,a]和其他所有组合。 – FProlog
完全删除问题的内容真的很不礼貌你已经得到了答案。这使得答案无效并且使已经回答的人的努力失效。 –