Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % 32.1
- DOMAINS
- i=integer
- list=i*
- PREDICATES
- nondeterm append(list, list, list)
- nondeterm odd_append(list, list, list)
- nondeterm odd_elements(list,list)
- nondeterm enter(list)
- nondeterm getlength(list,i)
- nondeterm run
- nondeterm do(char)
- nondeterm check(i,i,list,list)
- CLAUSES
- append([], List2, List2).
- append([Head|Tail], List2, [Head|TailResult]):-
- append(Tail, List2, TailResult).
- enter([H|T]):-
- write("Enter the element of the list or type 'END': "),
- readint(H),
- enter(T).
- enter([]):-!.
- getlength([],N):-N=0.
- getlength([_|T],N):-
- getlength(T,NewN),N=NewN+1.
- check(N,N1,L,L1):-
- N1<>N,write("Bad value"),nl;
- odd_append(L, L1, NewL),write("Your new list is ",NewL),nl.
- odd_elements([],[]).
- odd_elements([X],[X]).
- odd_elements([B, _|Tail], [A|OddTail]):-
- A=B,
- odd_elements(Tail, OddTail).
- odd_append(A, B, Appended):-
- odd_elements(A, AOdd),
- odd_elements(B, BOdd),
- append(AOdd, BOdd, Appended).
- run:-
- write("*******ENTER*******"), nl,
- write("- 1 to START"),nl,
- write("- 0 to EXIT"),nl,
- write("***********************"),nl,
- write(">>"), readchar(X),
- write(X), nl, do(X), run.
- do('1'):-
- enter(L),write("Your list 1 is ",L),nl,
- getlength(L,N),enter(L1),
- write("Your list 2 is ",L1),nl,
- getlength(L1,N1),check(N,N1,L,L1).
- do('0'):-
- write("That's all"),exit.
- do(_):-
- write("Bad value"), nl.
- goal
- run.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement