2

私はクラスの 1 つで見た単純な Prolog の例に取り組んでおり、'append' を使用して再実装しています。これは私が持っているものです(クラスから):

append1([],L,L).
append1([X|L1],L2,[X|L3]) :-
    append1(L1,L2,L3).

これを行うと、false になります。

append1([a,b],[c,d],L).
false.

しかし、(組み込みの追加を使用して) これを行うと、結果は true になります。

append([a,b],[c,d],L).
true.

なぜ違いがあるのですか?

そして、これらの次の追加の例の両方が「true」になるのはなぜですか? 何らかの理由で、Ls の値のリストが表示されることを期待していました ...

append(L1,L2,[a,b,c]).
true.

append([a,b],[c,d],L).
true.
4

1 に答える 1