concatenar

Lee
12 de Mayo del 2006
apenas hoy inicio con prolog y el lunes tengo examen me pueden decir como interpretar este código? como funciona? cuando le doy parámetros como concatena? Gracias
concatena([],L,L).
concatena([X|Xr],Y,[X|Zr]) :- concatena(Xr,Y,Zr).


/* ----------
trace(concatena([a,b,c],[d,e],X)).

## Trace beginsÉconcatena/3.

# 1 call concatena([a,b,c],[d,e],_11122)
# 2 call concatena([b,c],[d,e],_12100)
# 3 call concatena([c],[d,e],_12388)
# 4 call concatena([],[d,e],_12667)
# 4 exit concatena([],[d,e],[d,e])
# 3 exit concatena([c],[d,e],[c,d,e])
# 2 exit concatena([b,c],[d,e],[b,c,d,e])
# 1 exit concatena([a,b,c],[d,e],[a,b,c,d,e])

X = [a,b,c,d,e]
yes