Prolog Tutorial


Prolog Basics

Relation last(item,list) so last el w/o concate Ask question Buy and sale cars Merge two ordered list Print number from 1 to 25 Murder mystery 8puzzle - heuristic function % - best first search

Problem Solving

Game 5*5 matrix -moving in spiral way- dice value Fibonacci Series Read two strings concatenation of the both Production system - Missionary cannibal problem Print zodiac sign of a given birth date Use of list DB Employees - Print emp children of given age Print message Find relations in family Login page Add element in head position in given list Water Jug Problem start with state(0,0) end (2,0) Search record by name and phone number Add an element to the begining of list Find length of a list is even or odd String token Generate facts of family - take different relation Relation split(L,P,N) Find sum of all numbers in given list Show no of user entered book - 2 diff database

Sort Programs

Game EX Program to print user entered number Marcus Check year is a leap year or not Compare character and string Medical Diagnostic system Rotate list n places to the left Define relation shift L1,L2- L1 shift by one right Read sentence from file copy each of token in list Delete el from given list w/o using concatenate Display strings with closest length of int entered Find murderer Find permutation of a given list Find last element in a given list Read file and create a list of all words of it

Basic Programs

Sort list using Bubble Sort Find length of names Teacher and lecture Generate sublist of a given list Compare characters, strings, reverse string 4-3 Gallon Water Jug Problem Split list in negative & positive list Reverse given list Read and write file Relation count(A,L,N) num of occurrences Find summation of list of numbers Buy car and truck Write elements of the list line by line Concatenate two lists in giving third list Copy in database - string length equal to number Sort list using Quick Sort

File and Database Programs

Spiral game Relation max(X,Y,Max) Display each digit with respective frequencie Family hierarchy Person hobbies Predicate order (List) is true if List is ordered String in increasing order of their length in db Rel last(item,list) so item is last el of list Convert decimal number to roman number Find animals leaving in water and land Defines predicate maxlist (L,Max) Add element in last position in given list Predicate logic representation and prove proof Search student data - Name or phone no is i/p Predicates evenlength(List) and oddlength(List) Multi-List Program Run marriage burro Find names of student obtained marks greater Find length of given list DB of teacher - show no of lectures require


Game Add and multiply numbers Find grade Concate , member in list, reverse, delete list Read number Parent Tree Search company, car name, price, class, color Relation translate L1, L2 to num b/w 0 and 9 Read file and create list of all the lines of it Relation dividelist (L,L1,L2) Find factorial of given number Create window i/p string, remove the window & text Reverse list using concatenate Check number is member of given list or not 10 int in list,10 from database - find 2nd max

Search Programs

Game LT Find grade Find relations Insert an element anywhere in the list Display item name, code, quantity, price,grade Find easy courses person likes Logic repres - converting to prove the proof Define relation shift L1,L2- L1 shift by one left Read file display line by line - go to output file Delete an element from list using concatenate Read 10 strings into a list & display similar char Parent and predecessor Check given word is a palindrome or not Delete an element from given list Copy String length equal to number using file Sort list of integers using Insertion Sort Find maximum number from inputted number Monkey and banana Find nth element of a list Generate first 10 prime num store them in list Blocks problem using hill climbing Find last item of the list Check whether given list is palindrome or not Store cricket players details in database
<P><FONT size=2 face=\"Courier New\">%  Rotate a list N places to the left </FONT></P>
<P><FONT size=2 face=\"Courier New\">% rotate(L1,N,L2) :- the list L2 is obtained from the list L1 by <BR>%    rotating the elements of L1 N places to the left.<BR>%    Examples: <BR>%    rotate([a,b,c,d,e,f,g,h],3,[d,e,f,g,h,a,b,c])<BR>%    rotate([a,b,c,d,e,f,g,h],-2,[g,h,a,b,c,d,e,f])<BR>%    (list,integer,list) (+,+,?)</FONT></P>
<P><BR><FONT size=2 face=\"Courier New\">% Split a list into two parts</FONT></P>
<P><FONT size=2 face=\"Courier New\">% split(L,N,L1,L2) :- the list L1 contains the first N elements<BR>%    of the list L, the list L2 contains the remaining elements.<BR>%    (list,integer,list,list) (?,+,?,?)</FONT></P>
<P><FONT size=2 face=\"Courier New\">domains<BR> list=symbol*<BR>predicates<BR> rotate(list,integer,list).<BR> length(list,integer).<BR> rotate_left(list,integer,list).<BR> append(list,list,list).<BR> split(list,integer,list,list).<BR>clauses</FONT></P>
<P><FONT size=2 face=\"Courier New\">rotate(L1,N,L2) :- N >= 0, <BR>   length(L1,NL1), N1 = N mod NL1, rotate_left(L1,N1,L2).<BR>rotate(L1,N,L2) :- N < 0,<BR>   length(L1,NL1), N1 = NL1 + (N mod NL1), rotate_left(L1,N1,L2).</FONT></P>
<P><FONT size=2 face=\"Courier New\">rotate_left(L,0,L).<BR>rotate_left(L1,N,L2) :- N > 0, split(L1,N,S1,S2), append(S2,S1,L2).</FONT></P>
<P><FONT size=2 face=\"Courier New\">append([],Listb,Listb).<BR> <BR> append([X|List1],List2,[X|List3]):-</FONT></P>
<P><FONT size=2 face=\"Courier New\"> append(List1,List2,List3).</FONT></P>
<P><FONT size=2 face=\"Courier New\">split(L,0,[],L).<BR>split([X|Xs],N,[X|Ys],Zs) :- N > 0, N1 = N - 1, split(Xs,N1,Ys,Zs).</FONT></P>
<P><FONT size=2 face=\"Courier New\">length([],0).<BR>length([_|L],N) :- length(L,N1), N = N1 + 1.</FONT></P>
<P><FONT size=2 face=\"Courier New\">--------------------------------------------------------</FONT></P>
<P><FONT size=2 face=\"Courier New\">Goal: rotate([a,b,c,d,e,f,g,h],3,X)</FONT></P>
<P><FONT size=2 face=\"Courier New\">X=([\"d\",\"e\",\"f\",\"g\",\"h\",\"a\",\"b\",\"c\"])</FONT></P>
<P><FONT size=2 face=\"Courier New\">1 solution</FONT></P>

Didn't find what you were looking for? Find more on Prolog program to rotate a list n places to the left