Use SWI Prolog to write the following programs . Make sure the output from your programs looks just like the sample output in the problems. Please comment the code. I will upvote clear answer, thank you! This is a prolog Logic programming assignment.
1. To get warmed up, write a function, hlbackwards, that takes a list as input, and returns a it in which the elements of the toplevel list are in reverse order. Here is a sample execution: ?- hlbackwards (la,b, [c,d.el.x) Yes 2. To continue warming up, write a function, 11backwards, that takes a list as input, and returns a list in which every list and sublist is in reverse order. Here is a sample program execution Yea 7- 3. Write a function, palindrone, that takes a list as input and returns the original list if the list is a palindrome, ie reads the same in both directions, and otherwise returns the original list made into a palindrome by reversing it and appending it to itself, but not replicating the last element Here is a sample run: ?- palindrome([a,b,(c,d),el.x) ?- palindrome ([a, [b, c, [d]1,(d],c,b),a,x). 2- 4. Write a function, permutations, that takes a list as input and generates a list containing all possible permutations of the list elements. Here is a sample application: 2- permutations ([1,2,3],x) Yes 1. To get warmed up, write a function, hlbackwards, that takes a list as input, and returns a it in which the elements of the toplevel list are in reverse order. Here is a sample execution: ?- hlbackwards (la,b, [c,d.el.x) Yes 2. To continue warming up, write a function, 11backwards, that takes a list as input, and returns a list in which every list and sublist is in reverse order. Here is a sample program execution Yea 7- 3. Write a function, palindrone, that takes a list as input and returns the original list if the list is a palindrome, ie reads the same in both directions, and otherwise returns the original list made into a palindrome by reversing it and appending it to itself, but not replicating the last element Here is a sample run: ?- palindrome([a,b,(c,d),el.x) ?- palindrome ([a, [b, c, [d]1,(d],c,b),a,x). 2- 4. Write a function, permutations, that takes a list as input and generates a list containing all possible permutations of the list elements. Here is a sample application: 2- permutations ([1,2,3],x) Yes