0% found this document useful (0 votes)
14 views2 pages

Prolog List Operations Implementation

This document contains Prolog code snippets that implement various list processing functions: - evenlength(List) and oddlength(List) check if a list has an even or odd length - nth_element(N, L, X) returns the Nth element of list L - maxlist(L, M) returns the maximum element of list L in M - insert_nth(I, N, L, R) inserts element I into the Nth position of list L to produce list R - delete_nth(N, L, R) removes the element at the Nth position from list L to produce list R - merge(L1, L2, L3) merges

Uploaded by

kajal
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views2 pages

Prolog List Operations Implementation

This document contains Prolog code snippets that implement various list processing functions: - evenlength(List) and oddlength(List) check if a list has an even or odd length - nth_element(N, L, X) returns the Nth element of list L - maxlist(L, M) returns the maximum element of list L in M - insert_nth(I, N, L, R) inserts element I into the Nth position of list L to produce list R - delete_nth(N, L, R) removes the element at the Nth position from list L to produce list R - merge(L1, L2, L3) merges

Uploaded by

kajal
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

/*Q-13:Write a Prolog program to implement two predicates evenlength(List) and

oddlength(List) so that they are true if their argument is a list of even or odd length

respectively.*/

evelen([]).

evelen([|[|List]]):-evelen(List).

oddlen([_]).

oddlen([|[|List]]):-oddlen(List).

/*Q14: Write a Prolog program to implement nth_element (N, L, X) where N is the desired

position, L is a list and X represents the Nth element of L*/

nth_element(1,[H,T],H).

nth_element(N,[H,T],X):- N1 is N-1,nth_element(N1,T,X).

/*Q15: Write a Prolog program to implement maxlist(L, M) so that M is the maximum

number in the list.*/

max_element([H],H).

max_element([H|T],M):-max_element(T,M1),H>=M1, M is H,!.

max_element([H|T],M):-max_element(T,M1),H<M1, M is M1.

/*Q16: Write a prolog program to implement insert_nth (I, N, L, R) that inserts an item I into

Nth position of list L to generate a list R.*/

insert(L,[X|Y],[L|_]).

insert(L,Pos,[X|Y],[X|M]):-Pos>1,Pos1 is Pos-1,insert(L,Pos1,Y,M).

insert(L,1,[X|Y],M):- append([L],[X|Y],M).
/*Q17: Write a Prolog program to implement delete_nth (N, L, R) that removes the element

on Nth position from a list L to generate a list R.*/

delete_nth(1,[_|L],L).

delete_nth(Pos,[H|L],[H|R]):-Pos1 is Pos-1, delete_nth(Pos1,L,R).

/*Q18: Write a program in PROLOG to implement merge (L1, L2, L3) where L1 is first

ordered list and L2 is second ordered list and L3 represents the merged list.*/

merge([],[],[]).

merge([],L2,L2).

merge(L1,[],L1).

merge([H1|T1],[H2|T2],[H1|T3]):- H1=<H2,merge(T1, [H2|T2], T3).

merge([H1|T1],[H2|T2],[H2|T3]):- merge([H1|T1], T2, T3).

You might also like