prolog תרגיל 2

bennyprolog2 Comments



my_reverse([],[]).
my_reverse([X|Rest],R):-my_reverse(Rest,Rest_Rev),append(Rest_Rev,[X],R).

/*
39 ?- my_reverse([1,2,3],R).
R = [3, 2, 1].
*/

my_prefix([],_).
my_prefix([X|Rest1],[X|Rest2]):-my_prefix(Rest1,Rest2).
/*
27 ?- my_prefix([1,2,3],[1,3,4,5]).
false.

28 ?- my_prefix([1,2,3],[1,3,4,1,2,3]).
false.
 
29 ?- my_prefix([1,2,3],[1,2,3,5,6,6]).
true.*/

my_member(X,[X|_]).
my_member(X,[Y|Rest]):-my_member(X,Rest).
/*
10 ?- my_member(2,[1,2,3]).
true .

11 ?- my_member(6,[1,2,3]).
false.
*/


my_memberZ(_,_,0).
my_memberZ(X,[X|Rest],Z):-Z1 is Z-1,my_memberZ(X,Rest,Z1).
my_memberZ(X,[Y|Rest],Z):-my_memberZ(X,Rest,Z).
/*
7 ?- my_memberZ(2,[1,2,3,2],2).
true .

8 ?- my_memberZ(2,[1,2,3,2],1).
true .

9 ?- my_memberZ(2,[1,2,3,2],3).
false.
*/

my_palindrom(X):-reverse(X,X).
my_palindrom([X|Rest]):-append(K,[X],Rest),my_palindrom(K).
/*
16 ?- my_palindrom([]).
true.

17 ?- my_palindrom([1,2,3]).
false.

18 ?- my_palindrom([1,2,1]).
true.
*/

my_sorted([_|[]]).
my_sorted([X,Y|Rest]):-Y>X,my_sorted([Y|Rest]). 
/*
24 ?- my_sorted([1,2,3]).
true .

25 ?- my_sorted([1,2,3,2]).
false.*/



my_insert(X,[],[X]).
my_insert(X,[Y|REST],[X,Y|REST]):- X<Y.
my_insert(X,[Y|REST],[Y|L]):- X>Y,my_insert(X,REST,L).
/*
36 ?- my_insert(4,[1,2,3,6],R).
R = [1, 2, 3, 4, 6] ;
false.

37 ?- my_insert(4,[1,2,3],R).
R = [1, 2, 3, 4] .

38 ?- my_insert(4,[5,6,7],R).
R = [4, 5, 6, 7] .
*/






כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *