- (p get-first)
-
-However, the latter is still what's going on under the hood.
-
-
-* 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.
-
-
-* 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
-
-* Define a "sixteen" function that makes
-sixteen copies of its argument (and stores them in a data structure of
-your choice).
-
-* 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 extract 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.
-
-* 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))))
-
-* Write a function that reverses the order of the elements in a list. [Only attempt this problem if you're feeling frisky, it's super hard unless you have lots of experience programming.]