{ lists are represented using pairs as in homework 3, using the following encoding: cons h t -> pair h t nil -> 0 head l -> fst l tail l -> snd l isnil l -> (not (ispair l)) } (letfun map f (letfun m xs (if (ispair xs) (pair (@ f (fst xs)) (@ m (snd xs))) xs) m) (letfun plus1 x (+ x 1) (let g (@map plus1) (@g (pair 1 (pair 2 (pair 3 0))))))) { should yield (2.(3.(4.0))) }