我正在练习序言,而所有人都在杀了我。尝试这样做:
twice([1,2,3],X).
我想要的输出是
X = [1,1,2,2,3,3].
这是我最近的尝试:
twice([HD|TL],[HD2|TL2]):-
twice(TL,[HD,HD2|TL2]).
twice([],[HD|TL]).
//新
twice([],[]).
twice([A|B],Out):- twice([A|B],[A,A|Rest],
twice(B,Rest).
最佳答案
从基本情况开始,
twice([],
“什么都不是两倍”……什么都没有,对吧?
[]).
现在,如果那里有东西怎么办?
twice([A|B],
那呢我们要结果从
A
开始吗?你打赌 [A,
接下来会去哪里?
...
(请填写)。然后,剩下的就是:
| Rest] ):-
因此,我们继续。
Rest
取自B
: twice(B, ...).
请填写。