- (p get-first)
-
-However, the latter is still what's going on under the hood.
-
-
-13. Define a "swap" function that reverses the elements of a pair.
-Expected behavior:
-
- (define p ((make-pair 10) 20))
- ((p swap) get-first) ; evaluates to 20
- ((p swap) get-second) ; evaluates to 10
-
-Write out the definition of swap in Racket.
-
-
-14. Define a "dup" function that duplicates its argument to form a pair
-whose elements are the same.
-Expected behavior:
-
- ((dup 10) get-first) ; evaluates to 10
- ((dup 10) get-second) ; evaluates to 10
-
-15. Define a "sixteen" function that makes
-sixteen copies of its argument (and stores them in a data structure of
-your choice).
-
-16. Inspired by our definition of ordered pairs, propose a data structure capable of representing ordered tripes. That is,
-
- (((make-triple M) N) P)
-
-should return an object that behaves in a reasonable way to serve as a triple. In addition to defining the make-triple function, you have to show how to extraxt elements of your triple. Write a get-first-of-triple function, that does for triples what get-first does for pairs. Also write get-second-of-triple and get-third-of-triple functions.
-
-17. Write a function second-plus-third that when given to your triple, returns the result of adding the second and third members of the triple.
-
-You can help yourself to the following definition:
-
- (define add (lambda (x) (lambda (y) (+ x y))))
-
-18. [Super hard, unless you have lots of experience programming] Write a function that reverses the order of the elements in a list.