Advertisement
Guest User

Untitled

a guest
Oct 14th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.34 KB | None | 0 0
  1. % 32.1
  2. DOMAINS
  3. i=integer
  4. list=i*
  5.  
  6. PREDICATES
  7. nondeterm append(list, list, list)
  8. nondeterm odd_append(list, list, list)
  9. nondeterm odd_elements(list,list)
  10. nondeterm enter(list)
  11. nondeterm getlength(list,i)
  12. nondeterm run
  13. nondeterm do(char)
  14. nondeterm check(i,i,list,list)
  15.  
  16. CLAUSES
  17. append([], List2, List2).
  18. append([Head|Tail], List2, [Head|TailResult]):-
  19. append(Tail, List2, TailResult).
  20.  
  21. enter([H|T]):-
  22. write("Enter the element of the list or type 'END': "),
  23. readint(H),
  24. enter(T).
  25. enter([]):-!.
  26.  
  27. getlength([],N):-N=0.
  28. getlength([_|T],N):-
  29. getlength(T,NewN),N=NewN+1.
  30.  
  31. check(N,N1,L,L1):-
  32. N1<>N,write("Bad value"),nl;
  33. odd_append(L, L1, NewL),write("Your new list is ",NewL),nl.
  34.  
  35. odd_elements([],[]).
  36. odd_elements([X],[X]).
  37. odd_elements([B, _|Tail], [A|OddTail]):-
  38. A=B,
  39. odd_elements(Tail, OddTail).
  40.  
  41. odd_append(A, B, Appended):-
  42. odd_elements(A, AOdd),
  43. odd_elements(B, BOdd),
  44. append(AOdd, BOdd, Appended).
  45.  
  46. run:-
  47. write("*******ENTER*******"), nl,
  48. write("- 1 to START"),nl,
  49. write("- 0 to EXIT"),nl,
  50. write("***********************"),nl,
  51. write(">>"), readchar(X),
  52. write(X), nl, do(X), run.
  53.  
  54. do('1'):-
  55. enter(L),write("Your list 1 is ",L),nl,
  56. getlength(L,N),enter(L1),
  57. write("Your list 2 is ",L1),nl,
  58. getlength(L1,N1),check(N,N1,L,L1).
  59.  
  60. do('0'):-
  61. write("That's all"),exit.
  62.  
  63. do(_):-
  64. write("Bad value"), nl.
  65. goal
  66. run.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement