Question: Write a continuation-passing version revc of the list reversal function rev: The resulting function revc should have type a list -> (a list -> a

Write a continuation-passing version revc of the list reversal function rev:

The resulting function revc should have type a list -> (a list -> a list) -> a list or a more general type such as a list -> (a list -> b) -> b. The function may be called as revc xs id, where let id = fun v -> v is the identity function.

(ii) What happens if you call it as revc xs (fun v -> v @ v) instead?

(iii) Write a tail-recursive reversal function revi : a list -> a list -> a list, whose second parameter is an accumulating parameter, and which should be called as revi xs [].

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 Programming Questions!