擅长:python、mysql、java
<p>在您当前的代码中没有任何非“功能性样式”!谁说条件句是有功能的?实际上,所有函数式语言都有某种条件运算符,例如Lisp中的<code>cond</code>特殊形式。在</p>
<p>如果代码使用赋值运算符,或者以某种方式改变状态(比如,附加到列表中),我会对代码提出异议,但事实上,问题中的函数已经是“函数式”了——没有状态更改。在</p>
<p>也许你的意思是这样的?在</p>
<pre><code>return A != 0 and C == 0 and A <= 4 and someOtherFunction()
</code></pre>
<p>如果<code>A == 0</code>或{<cd4>}或{<cd5>},则上面的函数将返回<code>False</code>,在所有其他情况下,它将返回调用<code>someOtherFunction()</code>的值。顺便说一句,<code>False</code>可以假设为<code>0</code>(例如,<code>42 + False == 42</code>),因此问题中的代码中的语义将从调用者的角度得到保留。在</p>
<p>请注意,您将链接中的信息与上下文无关。完全不需要使用<code>lambda</code>,本文只解释如何在Python中绕过<code>lambda</code>s的固有限制,即不能在内部返回语句(如<code>if-elif-else</code>)——只允许使用表达式,但可以使用布尔运算符来伪造它们。在正常函数的上下文中,一定要使用条件句。在</p>