这个语句在 Haskell 中意味着什么?

ham*_*rns 6 haskell

我目前仍在进一步了解 Haskell,在模式匹配主题下,它在 Haskell 中意味着什么_ && _ = False?我在一张讲座幻灯片中看到了这个陈述,比如下划线是什么意思?再次感谢!

Rob*_*ong 10

下划线是通配符。也就是说,它们匹配任何值,但不将该值绑定到名称。这种用法的一个常见示例是:

True && True = True
_ && _ = False
Run Code Online (Sandbox Code Playgroud)


Wil*_*sem 5

下划线表示通配符。它与任何值绑定。因此,这意味着对于给定类型的函数的左操作数和右操作数的任何值,它将触发该子句,从而返回False

\n

因此,我们可以这样定义(&&) :: Bool -> Bool -> Bool

\n
(&&) :: Bool -> Bool -> Bool\nTrue && True = True\n_ && _ = False\n
Run Code Online (Sandbox Code Playgroud)\n

然而,其真正的实现(&&)在其第二个参数中是惰性的,并且实现为\xc2\xa0 [src]

\n
\n
-- | Boolean \\"and\\"\n(&&)                    :: Bool -> Bool -> Bool\nTrue  && x              =  x\nFalse && _              =  False\n
Run Code Online (Sandbox Code Playgroud)\n
\n