Advertisement
Guest User

Untitled

a guest
Jul 1st, 2015
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.70 KB | None | 0 0
  1. % length of the list
  2. len([], 0).
  3. len([H|T], B) :-len(T, NT), B is NT + 1.
  4. % return the ith element of the list
  5. match([H|_],0,H) :-!.
  6. match([_|T],N,H) :-N > 0,N1 is N-1,match(T,N1,H).
  7.  
  8. palindrome --> [].
  9. palindrome --> [_].
  10. palindrome --> [X], palindrome, [X].
  11.  
  12. ?- listing(palindrome//0).
  13. palindrome(A, A).
  14. palindrome([_|A], A).
  15. palindrome([C|A], D) :-
  16. palindrome(A, B),
  17. B=[C|D].
  18.  
  19. true.
  20.  
  21. ?- phrase(palindrome,[a,X,c,b,Y]).
  22. X = b, Y = a ;
  23. false.
  24.  
  25. ?- phrase(palindrome,[s,i,a,m,a,i,s]).
  26. true ;
  27. false.
  28.  
  29. ?- phrase(palindrome,[s,i,a,m,m,a,i,s]).
  30. true ;
  31. false.
  32.  
  33. ?- phrase(palindrome, Xs).
  34. Xs = []
  35. ; Xs = [_A]
  36. ; Xs = [_A,_A]
  37. ; Xs = [_A,_B,_A]
  38. ; Xs = [_A,_B,_B,_A]
  39. ; Xs = [_A,_B,_C,_B,_A] ...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement