% 1.3. házi feladat % Írjon egy az alábbi specifikációnak megfelelő Prolog eljárást. % Törekedjék hatékony megvalósításra. % :- mode leghosszabb_farka(+, +, ?). % leghosszabb_farka(L, X, F): Az L listának F a leghosszabb X-szel kezdődő % szuffixuma, azaz: % a. L = _ @ F, % b. F = [X|_], és % c. F a leghosszabb olyan lista, amely az a. és b. feltételeknek megfelel. % Itt L1 @ L2 az L1 és L2 listák egymás után fűzését jelöli. % | ?- leghosszabb_farka([1,2,4,2,3,4], 2, F). % F = [2,4,2,3,4] ? ; % no % -------------------------------------------------------------------------- % 1.4. házi feladat % Tekintse az 1.1. házi feladat alábbi megoldását. % :- mode replace_nth(+, ?, ?, ?, ?) replace_nth(1, [E0|L0], E0, [E|L0], E) :- !. replace_nth(N, [H|L0], E0, [H|L], E) :- N1 is N-1, replace_nth(N1, L0, E0, L, E). % Írjon le egy a replace_nth/5 eljárást meghívó célt, amely megfelel a % fenti móddeklarációnak, N > 0, és a cél futtatása nem ad helyes eredményt. % Javítsa ki a fenti eljárást, úgy, hogy az a vágás alapszabályát tartsa be.