Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %zadanie 1
- length([], Acc, Acc).
- length([_|X], Acc, Length) :-
- var(Length),
- NewAcc is Acc + 1, !,
- length(X, NewAcc, Length).
- length([_|X], Acc, Length) :-
- Acc =< Length,
- NewAcc is Acc + 1,
- length(X, NewAcc, Length).
- /*
- length([], Acc, Acc, 0).
- length([_|X], Acc, Length, Rev):-
- NewRev is Rev-1,
- NewAcc is Acc+1,
- length(X, NewAcc, Length, NewRev).
- */
- /*
- connection(gliwice, wroclaw).
- connection(wroclaw, warszawa).
- connection(wroclaw, katowice).
- connection(katowice, warszawa).
- */
- connection(warszawa, krakow).
- connection(krakow, warszawa).
- connection(krakow, gliwice).
- connection(gliwice, krakow).
- connection(gliwice, warszawa).
- connection(warszawa, gliwice).
- /*
- trip(X, X, Acc, Acc).
- trip(Start, Stop, Trasa, Acc) :-
- relacja(Przystanek, Stop),
- \+ member(Przystanek, Acc),
- trip(Poczatek, Przystanek, Trasa, [Przystanek|Acc]).
- */
- trip(Start, Start,ListaAkum, ListaAkum).
- trip(Start, Stop, TrasaLista, ListaAkum) :-
- connection(Przystanek, Stop),
- \+ member(Przystanek, ListaAkum),
- trip(Start, Przystanek, TrasaLista, [Przystanek|ListaAkum]).
- trip(Start, Stop, TrasaLista) :-
- trip(Start, Stop, TrasaLista, [Stop]).
- %zadanie 4
- mirror(leaf, leaf).
- mirror(node(Left, Val, Right), MirrorTree) :-
- mirror(Left, MirrorLeft),
- mirror(Right, MirrorRight),
- MirrorTree = node(MirrorRight, Val, MirrorLeft).
- flattn(leaf, []).
- flattn(node(L, V, R), Infixed) :-
- flattn(R, PrevInfixed),
- SecondInfixed = [V|PrevInfixed],
- flattn(L, AnotherPrevInfixed),
- append(AnotherPrevInfixed, SecondInfixed, Infixed).
- %zadanie 5
- insert(leaf, Elem, node(leaf, Elem, leaf)).
- insert(node(L, V, R), Elem, InsertedTree) :-
- Elem>=V,
- insert(R, Elem, InsertedSubTree),
- InsertedTree = node(L, V, InsertedSubTree),!.
- insert(node(L, V, R), Elem, InsertedTree) :-
- insert(L, Elem, InsertedSubTree),
- InsertedTree = node(InsertedSubTree, V, R).
- insertList(Tree, [], Tree).
- insertList(Tree, [H|Tail], InsertedTree) :-
- insert(Tree, H, PInsertedList),
- insertList(PInsertedList, Tail, InsertedTree).
- treeSort(Tree, List, SortedList) :-
- insertList(Tree, List, NewTree),
- flattn(NewTree, SortedList).
- %zadanie 7
- reverse(X,Y) :-
- reverse(X,[],Y).
- reverse([],A,A).
- reverse([H|T],A,Y) :-
- atomic(H),
- reverse(T,[H|A],Y), !.
- reverse([H|T], A, Y) :-
- reverse(H, [], NY),
- reverse(T, [NY|A], Y).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement