Here’s a fun programming puzzle.
In any language, define a function map that takes
another function f and maps it over a list l.
This means that map returns a new list where f
has been applied to every element of l.
An example in Python:
def map(f, l):
return [f(x) for x in l]Here’s the catch: you can’t use any of your language’s iteration
constructs, e.g. for, while,
each, or obviously any built-in map. The above
example is banned because of the for.
Sample solution:
We just use recursion instead of iteration
def map(f, l):
if len(l) == 0:
return []
return [f(l[0])] + map(f, l[1:])