Witam,
mógłby mi ktoś na prostym przykładzie wytłumaczyć jak działa rekurencje w prologu ?
złącz([ ], L, L).
złącz([X|L1], L2, [X|L3]):- złącz(L1, L2, L3).
Załóżmy, że wywołujemy złącz([a,b,c],[d,e],L3])
.
Rozumiem, że 1 linijka to warunek zakończenie rekurencji. Pusta lista dodana do listy L daje tą samą listę.
W 2 linijce nie mam pojęcia co się dzieje ;p
Rozumiem, że dzielimy listę L1
na głowę X (a)
i ogon czyli nowe L1 (b,c)
. Z L2
nic nie robimy, a do L3
dodajemy X
? I potem próbujemy łączyć, lista L1
nie jest pusta więc znowu L1
dzielimy na X (b)
i ogon L1 (c)
i do L3
dodajemy X
otrzymując a,b
? Tylko kiedy dodajemy L2
do całej listy ?
Jakby ktoś wytłumaczył mi działanie tych 2 linijek krok po kroku na tym przykładzie to byłbym wdzięczny bardzo.