Question: do not use any of the built-in Clojure functions/macros except: def, defn, fn, if, cond, let, arithmetic operations, comparison operations, and, or, not, str, seq,

do not use any of the built-in Clojure functions/macros except: def, defn, fn, if, cond, let, arithmetic operations, comparison operations, and, or, not, str, seq, cons, first, rest, nth, zero?, seq?, empty?, nil?, odd?, even?, assoc. Create the following functions using Clojure.

1.(prepend n x coll) returns a sequence (a seq!) containing n copies of x and the remainder of the elements of the collection coll.

> (prepend 3 [1 2] (:x :y :z))

> ([1 2] [1 2] [1 2] :x :y :z)

2. (invert lst), where lst is a list of 2-lists (lists of length two), returns a list with each 2-list reversed.

> (invert ((a 1) (a 2) (1 b) (2 b)))

((1 a) (2 a) (b 1) (b 2))

3. (down lst) wraps each top-level element of lst in a list.

> (down (1 2 3))

((1) (2) (3))

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!