4 Generalized Printing You are tasked with creating generalized list printing functions. Write a function called print GenList which takes a list and a printing function f and applies the function to each element of the list recursively. The function should have the following type signature: val print GenList : 'a list -> ('a -> unit) -> unit Create a function called printList that will pretty print an integer list. You will find the string concatenation operator (^) and the string_of_int function useful. printList will take an integer 3 list followed by a string. The string is the name of the output file that you will write the list to. This function should leverage printGenList and provide an anonymous function (the fun ... ->... construct) that will do the appropriate pretty printing to the output file. This anonymous function should print the element of the list and then a space character. printList should have the following type signature: val printList: int list -> string -> unit Create a function called printPairList that will pretty print a list consisting of integer pairs. The function will take an (int * int) list followed by a string. The string is the name of the output file that you will write the list to. printPairList should leverage print GenList and provide an anonymous function (the fun ... ->... construct) that will do the appropriate pretty printing. This anonymous function should print an open parenthesis, the first element of the pair, a comma, a space, the second element of the pair, and then a close parenthesis followed by a space. printPairList should have the following type signature: val printPairList : (int * int) list -> string -> unit

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

OCaml Code: Please read the attached instructions carefully and show the correct code with the screenshot of the output. I really need help with this assignment. 

4
Generalized Printing
You are tasked with creating generalized list printing functions. Write a function called printGenList
which takes a list and a printing function f and applies the function to each element of the list
recursively. The function should have the following type signature:
val print GenList : 'a list -> ('a -> unit) -> unit
Create a function called printList that will pretty print an integer list. You will find the string
concatenation operator (^) and the string_of_int function useful. printList will take an integer
3
list followed by a string. The string is the name of the output file that you will write the list
to. This function should leverage printGenList and provide an anonymous function (the fun ...
->... construct) that will do the appropriate pretty printing to the output file. This anonymous
function should print the element of the list and then a space character. printList should have the
following type signature:
val printList int list -> string -> unit
Create a function called printPairList that will pretty print a list consisting of integer pairs.
The function will take an (int * int) list followed by a string. The string is the name of the
output file that you will write the list to. printPairList should leverage printGenList and
provide an anonymous function (the fun ... ->... construct) that will do the appropriate
pretty printing. This anonymous function should print an open parenthesis, the first element of
the pair, a comma, a space, the second element of the pair, and then a close parenthesis followed
by a space. printPairList should have the following type signature:
val printPairList : (int int) list -> string -> unit
Transcribed Image Text:4 Generalized Printing You are tasked with creating generalized list printing functions. Write a function called printGenList which takes a list and a printing function f and applies the function to each element of the list recursively. The function should have the following type signature: val print GenList : 'a list -> ('a -> unit) -> unit Create a function called printList that will pretty print an integer list. You will find the string concatenation operator (^) and the string_of_int function useful. printList will take an integer 3 list followed by a string. The string is the name of the output file that you will write the list to. This function should leverage printGenList and provide an anonymous function (the fun ... ->... construct) that will do the appropriate pretty printing to the output file. This anonymous function should print the element of the list and then a space character. printList should have the following type signature: val printList int list -> string -> unit Create a function called printPairList that will pretty print a list consisting of integer pairs. The function will take an (int * int) list followed by a string. The string is the name of the output file that you will write the list to. printPairList should leverage printGenList and provide an anonymous function (the fun ... ->... construct) that will do the appropriate pretty printing. This anonymous function should print an open parenthesis, the first element of the pair, a comma, a space, the second element of the pair, and then a close parenthesis followed by a space. printPairList should have the following type signature: val printPairList : (int int) list -> string -> unit
5 Example output for the entire homework
Note that print List and printPairList must print to the output file, we show the contents of the file
as string for example only.
even 2;;
- bool = true
even 3;;
- bool= false
odd 2;;
- bool = false
odd 3;;
- bool = true
take 10 squares;;
- int list = [1; 4; 9; 16; 25; 36; 49; 64; 81; 100]
take 10 fibs;;
- : int list = [0; 1; 1; 2; 3; 5; 8; 13; 21; 34]
take 10 evenFibs;;
- int list = [0; 2; 8; 34; 144; 610; 2584; 10946; 46368; 196418]
take 10 oddFibs;;
- int list = [1; 1; 3; 5; 13; 21; 55; 89; 233; 377]
take 10 primes;;
- int list = [2; 3; 5; 7; 11; 13; 17; 19; 23; 29]
take 5 (rev_zip_diff evenFibs oddFibs (fun (x,y) -> x - y)) ;;
(int int * int) list=
[(1, 0, 1); (1, 2, -1); (3, 8, -5); (5, 34, -29); (13, 144, -131)]
printGenList["how"; "the"; "turntables"] (fun s -> print_string (s^ " ")) ;;
how the turntables: unit = ()
printList [2; 4; 6; 8] "printList.txt";; (* "2 4 6 8 " *)
printPairList [(2, 1); (3, 2); (4, 3)] "printPairList.txt";; (* "(2, 1) (3, 2) (4, 3) " *)
Transcribed Image Text:5 Example output for the entire homework Note that print List and printPairList must print to the output file, we show the contents of the file as string for example only. even 2;; - bool = true even 3;; - bool= false odd 2;; - bool = false odd 3;; - bool = true take 10 squares;; - int list = [1; 4; 9; 16; 25; 36; 49; 64; 81; 100] take 10 fibs;; - : int list = [0; 1; 1; 2; 3; 5; 8; 13; 21; 34] take 10 evenFibs;; - int list = [0; 2; 8; 34; 144; 610; 2584; 10946; 46368; 196418] take 10 oddFibs;; - int list = [1; 1; 3; 5; 13; 21; 55; 89; 233; 377] take 10 primes;; - int list = [2; 3; 5; 7; 11; 13; 17; 19; 23; 29] take 5 (rev_zip_diff evenFibs oddFibs (fun (x,y) -> x - y)) ;; (int int * int) list= [(1, 0, 1); (1, 2, -1); (3, 8, -5); (5, 34, -29); (13, 144, -131)] printGenList["how"; "the"; "turntables"] (fun s -> print_string (s^ " ")) ;; how the turntables: unit = () printList [2; 4; 6; 8] "printList.txt";; (* "2 4 6 8 " *) printPairList [(2, 1); (3, 2); (4, 3)] "printPairList.txt";; (* "(2, 1) (3, 2) (4, 3) " *)
Expert Solution
steps

Step by step

Solved in 4 steps with 5 images

Blurred answer
Knowledge Booster
Linked List Representation
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education