[back]

Reverse Concatenation

Implement the function

val rev_concat : 'a list list -> 'a list

so that rev_concat ls is List.rev (List.concat ls) but does not use the function List.rev. Your implementation must be tail recursive.

Examples

let _ = assert (rev_concat [[1; 2]; [3; 4]; [5]] = [5; 4; 3; 2; 1])