gpt4 book ai didi

haskell - 使用 `as` 语法的惰性模式匹配的语法

转载 作者:行者123 更新时间:2023-12-04 04:25:43 25 4
gpt4 key购买 nike

在( Vanilla )GHCi 8.6.5 中,以下功能完全有效:

f xs@ ~(x:xt) = xs
如果我现在在 9.0.1 中做同样的事情,我会得到一个错误
Suffix occurrence of @. For an as-pattern, remove the leading whitespace.
只需删除 @ 之间的空格即可和 ~似乎还不够,因为那时 @~将被解释为运算符,因此我发现的唯一有效变体是
f xs@(~(x:xt)) = xs
我想知道以下内容,但在更改说明中找不到答案:
  • 从 8.6.5 到 9.0.1 究竟发生了什么变化导致了这种不兼容性?
  • xs@(~(x:xt))真的是编写这种模式的最佳方式,还是有比这更好的方式?
  • 最佳答案

    GHC 9.0 中对 ~ 和 @ 处理的更改描述为 here .引用迁移指南:

    GHC 9.0 implements Proposal 229, which means that the !, ~, and @ characters are more sensitive to preceding and trailing whitespace than they were before. As a result, some things which used to parse one way will now parse differently (or throw a parse error).

    关于haskell - 使用 `as` 语法的惰性模式匹配的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67972231/

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