gpt4 book ai didi

haskell - ‘.++’ 的固定签名缺少随附的绑定(bind)

转载 作者:行者123 更新时间:2023-12-02 16:32:37 24 4
gpt4 key购买 nike

infixr 5 .++

我在 ghci 中执行此操作,它给出了错误消息。

<interactive>:26:10: error:
The fixity signature for ‘.++’ lacks an accompanying binding

我该如何解决这个问题?谢谢!

最佳答案

正如错误所示,您确实定义了固定性,但您仍然需要定义签名和实现。否则,实际上不存在运算符(或者至少我们不能使用这样的运算符,这通常就是人们声明这样的运算符的原因)。由于 Haskell 本身可以导出签名,因此严格来说签名是不必要的(尽管建议编写一个签名,因为它可能是一个“顶级函数”)。

例如:

infixr 5 .++
(.++) :: [a] -> [a] -> [a]
(.++) = (++)

这里第二行是签名,第三行是实现。当然,您可以选择其他签名和实现。

如果您在解释器中运行它,则需要在同一个“语句”中定义所有这些。您可以通过对行进行分组来实现此目的,例如使用 :{:} 命令:

Prelude> :{
Prelude| infixr 5 .++
Prelude| (.++) :: [a] -> [a] -> [a]
Prelude| (.++) = (++)
Prelude| :}

关于haskell - ‘.++’ 的固定签名缺少随附的绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51485518/

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