pub fn map(xs: List, f: fn(a) -> result) -> List { when xs is { [] -> [] [x, ..rest] -> [f(x), ..map(rest, f)] } } test map_1() { map([], fn(n) { n + 1 }) == [] }