小编Rob*_*rtM的帖子

如何交换序言列表中的三乘三元素?

我正在 Prolog 中进行练习,但被卡住了。我需要将列表中的三个相邻项目与另外三个元素交换。

那是:

| ?- swap([c,g,g,a,t,t,g,c,a,a], X).

X = [a,t,t,c,g,g,g,c,a,a]
X = [g,c,a,a,t,t,c,g,g,a]
X = [c,g,g,g,c,a,a,t,t,a]
X = [c,a,a,a,t,t,g,c,g,g]
.
.
.
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止:

swap([H1, H2, H3, H4, H5, H6|T1], X) :-
     X = [H4, H5, H6, H1, H2, H3|T1];
     swap([H2, H3, H4, H5, H6|T1], X);
     swap([H1, H2, H3, H4, H5|T1], X).
Run Code Online (Sandbox Code Playgroud)

这个输出是:

| ?- swap([c,g,g,a,t,t,g,c,a,a], X).

X = [a, t, t, c, g, g, g, c, a, a] ;
X = [t, t, g, g, g, a, c, a, …
Run Code Online (Sandbox Code Playgroud)

swap list bioinformatics prolog dcg

4
推荐指数
1
解决办法
159
查看次数

标签 统计

bioinformatics ×1

dcg ×1

list ×1

prolog ×1

swap ×1