gpt4 book ai didi

haskell - 函数声明中的模式匹配中的括号 Haskell

转载 作者:行者123 更新时间:2023-12-02 02:22:55 40 4
gpt4 key购买 nike

我们必须在函数声明的模式匹配中使用括号吗?

在下面的示例中,我有一个模式 x:xs在哪里 x从列表中获取第一个元素和 xs包含其余部分。

我想问一下括号是否是这种模式匹配的必要部分。

head' :: [a] -> a  
head' [] = error "Can't call head on an empty list!"
head' (x:_) = x

我试图在没有大括号的情况下使用它,但在加载到 ghci 时会导致错误。

最佳答案

括号不是模式匹配的一部分,就像它们不是表达式评估的一部分一样。话虽如此,括号肯定是模式和表达式语法的一部分。

看,如果你写

h x:xs

这看起来像
(h x) : xs

到解析器。因此我们写
h (x:xs)

在等号的左侧和右侧。作为表达式,它的意思是“函数 h 应用于由 x 和 xs 构成的列表”,在左侧,它为该应用定义了一个方程。

关于haskell - 函数声明中的模式匹配中的括号 Haskell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20311918/

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