Question
in clojure Here is an alternative procedural representation of pairs (but were missing the rest-proc function). (def cons-proc (fn [x y] (fn [m] (m x
"in clojure" Here is an alternative procedural representation of pairs (but were missing the rest-proc function). (def cons-proc (fn [x y] (fn [m] (m x y)))) (def first-proc (fn [z] (z (fn [p q] p)))) Given this definition of the list-proc type: An expression exp is a list-proc if and only if it satisfies one of the following two conditions: (a) exp is nil (b) exp is of the form (cons-proc x y) and y is a list-proc. complete the following tasks: (a) For this representation, verify that (first-proc (cons-proc x y)) yields x for any objects x and y. (b) Give the definition of rest-proc. Include a complete set of unit tests that demonstrates that you can create complex lists and traverse them using these procedures. (c) Write a function (list-proc? lp) that returns true if lp is a list-proc and false otherwise. (d) Write a function (list-proc-2-string lp) that takes a list-proc as an argument and returns a string representation of it using the same formatting Clojure uses for normal lists.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started