Haskell中lambda函数的解释

ovfsdjhp  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(148)

x在最后做什么?为什么我需要在那里写它?

(\x -> (>=5) x)

如果我像这样调用函数:(\x -> (>=5) x) 5,第二个x在做什么?也许有人能给我解释一下。

s3fp2yjn

s3fp2yjn1#

(>= 5)是一个section of an infix operator [Haskell-wiki],它等价于\y -> y >= 5,因此它是一个函数,我们将x应用于该函数。这意味着:

\x -> (>= 5) x

因此等效于:

\x -> x >= 5

或者简单地说:

(>= 5)

由于η-reduction [Haskell-wiki],因此,

相关问题