Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % 1
- fst([H|_],H).
- snd([_, S|_],S).
- % 2
- rev(Lst1,Lst2) :- revHelper(Lst1,Lst2,[]).
- revHelper(Lst1,[],Lst1) :- !.
- revHelper(Lst1,[H|T],Lst3) :-
- revHelper(Lst1,T,[H|Lst3]).
- % 3
- sym(Lst) :- rev(Lst,Lst).
- % 4
- odd(N) :- 0 =\= N mod 2.
- prime(2).
- prime(N) :-
- N>1,
- odd(N),
- checkPrime(3,N).
- checkPrime(A,N) :-
- AA is A*A, AA>N;
- 0 =\= N mod A,
- A2 is A+2,
- checkPrime(A2,N).
- unprime(A) :- \+ prime(A).
- primeList([],[]).
- primeList([H|T],[PH|PT]) :-
- prime(H),
- H = PH,
- primeList(T,PT).
- primeList([H|T],PLst) :-
- unprime(H),
- primeList(T,PLst),!.
- % 5
- pref([],_).
- pref([H|T1],[H|T2]) :-
- pref(T1,T2).
- sublst(Lst1,Lst2) :- pref(Lst1,Lst2), !.
- sublst(Lst1,[_|T]) :- sublst(Lst1,T).
- % 6
- merge(Lst3,[],Lst3).
- merge([],Lst3,Lst3).
- merge([H|T1],[H|T2],[H,H|T3]) :- merge(T1,T2,T3), !.
- merge([H|T1],Lst2,[H|T3]) :-
- Lst2 = [H2|_],
- H<H2,
- merge(T1,Lst2,T3).
- merge(Lst1,[H|T2],[H|T3]) :-
- Lst1 = [H1|_],
- H1>H,
- merge(Lst1,T2,T3).
- % 7
- numlst(A,B) :- var(A), var(B), A = 1, B = [1].
- numlst(N,Lst) :-
- var(Lst),
- numlstHelper(N,RLst),
- reverse(Lst,RLst).
- numlst(N,Lst) :- reverse(Lst,RLst), numlstHelper(N,RLst).
- numlstHelper(N,RLst) :- var(RLst), N<10, RLst = [N|[]].
- numlstHelper(N,RLst) :-
- var(RLst),
- N10 is N mod 10,
- RLst = [N10|T],
- NN is N div 10,
- numlstHelper(NN,T).
- numlstHelper(N,[H|[]]) :- N<10, N is H.
- numlstHelper(N,[H|T]) :-
- H is N mod 10,
- NN is N div 10,
- numlstHelper(NN,T).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement