
eleme(E, [E|_]).
eleme(E,[_|T]) :- eleme(E,T).


torol(_,[],[]).
torol(E,[E|T],T).
torol(E,[F|T],[F|S]) :- torol(E,T,S).
	%%hány előfordulást töröl?
	%%hogy lehet törlés helyett beszúrni egy új elemet?
	%%oldja meg, hogy az E minden előfordulását törölje!  

	/******/

hossz([_|T],H) :- hossz(T,K), H is K+1.
hossz([],0).

hossza(L,H):-hossza(L,H,0).
hossza([_|T], H, Akt):- Ujakt is Akt +1, hossza(T,H, Ujakt).
hossza([],H,H).

	/*megjegyzés:

	Irtam egy eljárást, amely feltölt egy listát számokkal (csupa 1-gyel), 
	majd meghívtam az így kapott listára a két hossz eljárást.

	A hatékonyság (a verem-tár használata szempontjából):
	hossza: H = 2742961 elemre még tud számolni, H = 2742962-t már nem
	hossz: H = 349169 az utolsó.

	Feladat: Készítse el a feltöltő eljárást!
	(Vagyis írjon egy olyan eljárást, amely N db 1-essel 
	 feltölt egy listát. Jobb rekurziót alkalmazzon, hogy 
	 ne a listafeltöltés vigye el a veremkapacitást.)
	
	*/


/*
lista beolvasása:
*/

olvas([F|T]) :- write('kérem az adatot "vege" végjelig: '), read(F), F\= vege, olvas(T).
olvas([]).


/*
A beolvasott lista hosszának megállapítása:
*/

start :- olvas(L), hossza(L,H), writef('A lista hossza: %w',[H]).


/*

Irjuk meg a következőket:
a/ egy lista elemeinek szétválogatása
b/ egy lista elemeinek maximuma
c/ két lista összefűzése
d/ adjunk a listához egy, a listában eddig még nem szereplő elemet! 
(html jegyzet Listák fejezetének 6. feladata)

*/