<div dir="ltr">I can't stand map/reduce/lambda... *instant readable makeover*<div><div>def minicomp(f1, f2):</div><div>    def comped(*args, **kwargs):</div><div>        return f1(f2(*args, **kwargs))</div><div>    return comped</div>
<div><br></div></div><div>def compose(*funcs):</div><div>    total = funcs[0]</div><div>    for f in funcs[1:]:</div><div>        total = minicomp(total, f)</div><div>    return total</div><div><br><div class="gmail_quote">
On Sat, Sep 5, 2009 at 5:15 PM, Masklinn <span dir="ltr"><<a href="mailto:masklinn@masklinn.net">masklinn@masklinn.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On 5 Sep 2009, at 15:47 , Gerald Britton wrote:<br>
Ah -- so not a real function then (yet)?  Though something we could<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
borrow from Haskell, I suppose, even though:<br>
<br>
compose(foo,bar) == lambda x: foo(bar(x))<br>
<br>
no?<br>
<br>
</blockquote>
<br></div>
Yeah but you could leverage Python's *args to get a compositor of more than two functions e.g.<br>
<br>
   def compose(*funcs):<br>
       return reduce(lambda f1, f2:<br>
                         lambda *args, **kwargs:<br>
                             f1(f2(*args, **kwargs)),<br>
                     funcs)<div><div></div><div class="h5"><br>
_______________________________________________<br>
Python-ideas mailing list<br>
<a href="mailto:Python-ideas@python.org" target="_blank">Python-ideas@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/python-ideas" target="_blank">http://mail.python.org/mailman/listinfo/python-ideas</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Yuv<br><a href="http://hzk.co.il">hzk.co.il</a><br>
</div></div>