Próbuję dodać jeden element do końca listy w prologu, ale nadal kończy się niepowodzeniem.Jak dodać do końca listy w prologu
insertAtEnd(X,[ ],[X]).
insertAtEnd(X,[H|T],[H|Z]) :- insertAtEnd(X,T,Z).
letters([a,b,c]).
Nie rozumiem, dlaczego poniższy opis nie działa.
insertAtEnd(d,letters(Stored),letters(Stored)).
Ja również próbuje zapisać tę listę w zmiennej przechowywanej przez cały czas, ale nie jestem pewien, czy powyższe jest prawidłowy sposób postępowania.
Konieczność wstawienia elementu na końcu listy zdecydowanie sugeruje, że zajrzysz do * list różnicowych *, które dadzą ci wstawkę O (1). –