gpt4 book ai didi

haskell - 实例声明中的变量

转载 作者:行者123 更新时间:2023-12-02 20:58:13 25 4
gpt4 key购买 nike

此片段来自 LYAH:

instance (Eq m) => Eq (Maybe m) where     

Just x == Just y = x == y      
Nothing == Nothing = True     
 _ == _ = False

我对 x 和 y 应该是什么感到完全困惑,因为它们没有在任何地方定义。谁能帮我理解这个?

最佳答案

嗯,== 是一个中缀 函数,您可以将其解读为模式匹配:

(==) (Just x) (Just y)

在这种情况下,很明显xy是模式匹配中的函数参数。

一个更简单的示例可以显示(没有类型类):

areBothFive:: Int -> Int -> Bool
5 `areBothFive` 5 = True
x `areBothFive` y = False -- the x and y are variables in the pattern match here

areBothFive 5 5 -- true
areBothFive 4 5 -- false

这是a fiddle illustrating the issue

LYAH 在“函数语法”一章中给出了使用此语法的示例。

关于haskell - 实例声明中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30288336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com