我想使用合成或更高阶魔术来简化以下lambda,
(\a b -> if (b) then (not a) else a)
但我无法想到一个聪明的方法。你能帮帮我吗?
感谢。
答案 0 :(得分:12)
让我们看一下真值表:
a b f
------------+-------
False False | False
False True | True
True False | True
True True | False
那太有趣了!只要输入不相同,f
就是True
。嗯...
答案 1 :(得分:3)
正如另一位用户所指出的,这是xor
的一个例子,那么我们如何定义这个函数呢?
如果输入相等,则结果为false。 如果输入不相等,则结果为真。
\x y -> x /= y
编辑:评论员是对的,我的坏!我之前给出的定义不起作用。