擅长:python、mysql、java
<p>哈斯克尔</p>
<p><code>foldl (+) 0 [1,2,3,4,5]</code></p>
<p>Python</p>
<p><code>reduce(lambda a,b: a+b, [1,2,3,4,5], 0)</code></p>
<p>显然,这是一个简单的例子来说明一点。在Python中,您只需要做<code>sum([1,2,3,4,5])</code>,甚至Haskell纯粹主义者通常也会喜欢<code>sum [1,2,3,4,5]</code>。</p>
<p>对于没有明显便利函数的非平凡场景,惯用的pythonic方法是显式地写出For循环并使用可变变量赋值,而不是使用<code>reduce</code>或<code>fold</code>。</p>
<p>这根本不是功能性的风格,但这是“Python式”的方式。Python不是为功能纯粹主义者设计的。查看Python如何支持流控制的异常,以了解非功能的惯用Python是如何的。</p>