Haskell中'@'运算符的含义是什么

050*_*050 3 syntax haskell symbols

我有这个代码:

  mix xxs@(x:xs) yys@(y:ys)
  | x<=y = x : mix xs yys
  | otherwise = y : mix xxs ys
Run Code Online (Sandbox Code Playgroud)

但我不知道是什么@意思。

che*_*ner 8

它不是运营商;它是模式语法的一部分。在 的情况下yys@(y:ys),如果第二个参数与 成功匹配(y:ys),则匹配的整个值也将绑定到yys

因此,如果您调用min [1,2] [3,4],则将y绑定到3ys[4]yys[3,4]