我正在练习序言,而所有人都在杀了我。尝试这样做:

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, ...).


请填写。

09-26 08:53