我正在阅读《Real World Haskell》并尝试理解模式匹配中的as-pattern。
书中(第4章)所述:
suffixes :: [a] -> [[a]]
suffixes xs@(_:xs') = xs : suffixes xs'
suffixes _ = []
这本书如此解释@符号:
"……将变量xs绑定到与@符号右侧匹配的值。"
我无法理解这个解释。假设我调用
suffixes "hello"
具体来说,上述带有@符号的代码在第一次迭代中会对此代码执行什么操作?我知道函数的结果是什么,但不知道如何从上面的代码得到结果。