Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % length of the list
- len([], 0).
- len([H|T], B) :-len(T, NT), B is NT + 1.
- % return the ith element of the list
- match([H|_],0,H) :-!.
- match([_|T],N,H) :-N > 0,N1 is N-1,match(T,N1,H).
- palindrome --> [].
- palindrome --> [_].
- palindrome --> [X], palindrome, [X].
- ?- listing(palindrome//0).
- palindrome(A, A).
- palindrome([_|A], A).
- palindrome([C|A], D) :-
- palindrome(A, B),
- B=[C|D].
- true.
- ?- phrase(palindrome,[a,X,c,b,Y]).
- X = b, Y = a ;
- false.
- ?- phrase(palindrome,[s,i,a,m,a,i,s]).
- true ;
- false.
- ?- phrase(palindrome,[s,i,a,m,m,a,i,s]).
- true ;
- false.
- ?- phrase(palindrome, Xs).
- Xs = []
- ; Xs = [_A]
- ; Xs = [_A,_A]
- ; Xs = [_A,_B,_A]
- ; Xs = [_A,_B,_B,_A]
- ; Xs = [_A,_B,_C,_B,_A] ...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement