So.... if it&#39;s alright with the privledged folk - I&#39;d like to commit these minor (and probably non-controversial) additions to the functools module.<br><br><br><br>def cat(x): return x<br><br>def multimap(func, s, n=2):
<br>&nbsp;&nbsp;&nbsp; assert n &gt; 0, &quot;n must be positive&quot;<br>&nbsp;&nbsp;&nbsp; return (map(func, seq)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if n == 1 else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; map(lambda x: multimap(func, x, n-1),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; seq))<br><br>def multifilter(func, s, n=2):
<br>&nbsp;&nbsp;&nbsp; return multimap(lambda x: filter(func, x), s, n-1)<br><br>def multireduce(func, s, n=2):<br>&nbsp;&nbsp;&nbsp; return multimap(lambda x: reduce(func, x), s, n-1)<br><br><br>class nullfunc(object):<br>&nbsp;&nbsp;&nbsp; def __call__(self, *a, **k): return self
<br>&nbsp;&nbsp;&nbsp; def __getattr(self, name): return getattr(None, name)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br><br><br>cat is a generic identity function - useful for some higher-order functions to specify a function that &quot;does nothing&quot;. multimap, multifilter, and multireduce, are all multi-dimensional versions of map, filter, and reduce. nullfunc is a special callable object that emulates the failed callable None proposal - which wasn&#39;t really a good idea, but would have been more useful as a different object apart from None.
<br><br>you could probably even put cat in __builtins__ - so you don&#39;t need to waste effort importing such a trivial function.<br><br>--.<br>&quot;What&#39;s money? A man is a success if he gets up in the morning and goes to bed at night and in between does what he wants to do.&quot; ~ Bob Dylan