[a] addOneToElement e-6ren">
gpt4 book ai didi

haskell - fun 声明中的类型错误

转载 作者:行者123 更新时间:2023-12-02 16:45:53 28 4
gpt4 key购买 nike

我愿意:

Prelude> "sone" ++ "otehr"
"soneotehr"

但是这样的代码:

addOneToElement :: [a] -> [a]
addOneToElement element = element ++ "next"

main = do
let s = addOneToElement("some")
putStrLn s

产生以下输出:

all_possible_combinations.hs:22:37:
Couldn't match expected type `a' against inferred type `Char'
`a' is a rigid type variable bound by
the type signature for `addOneToElement'
at all_possible_combinations.hs:21:20
Expected type: [a]
Inferred type: [Char]
In the second argument of `(++)', namely `"next"'
In the expression: element ++ "next"

为什么我会收到此错误以及如何修复它?

最佳答案

您的类型签名应该是:

addOneToElement :: [Char] -> [Char]

(或更简单地说,addOneToElement::String -> String)

类型签名中的“a”是一个通配符 - 它可以匹配任何内容。但是,您试图将 Char 列表连接到任何内容的列表 - 但没有办法做到这一点。

关于haskell - fun 声明中的类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3958613/

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