gpt4 book ai didi

haskell - 如何将文字 1 作为 Maybe Integer 返回?

转载 作者:行者123 更新时间:2023-12-02 01:24:55 26 4
gpt4 key购买 nike

我正在学习 Haskell,但无法将文字 1 返回为 Maybe Integer

alwaysOne:: Integer -> Maybe Integer
alwaysOne n = 1

加薪

error:
• No instance for (Num (Maybe Integer))
arising from the literal ‘1’
• In the expression: 1
In an equation for ‘alwaysOne’: alwaysOne n = 1
|
14 | alwaysOne n = 1
| ^

最佳答案

having trouble returning literal 1 as Maybe Integer

也许类型有两个数据构造函数:

data Maybe a = Nothing | Just a

如果您想生成Maybe Integer 值,则需要使用这些数据构造函数之一。您想要的是将 1 传递给 Just 数据构造函数:

alwaysOne:: Integer -> Maybe Integer
alwaysOne n = Just 1

也就是说,Just 接受任何类型的值并生成为该类型参数化的Maybe 值:

Just :: a -> Maybe a
在您的情况下,上面的

a 被推断为 Integer

类似地,如果您想定义alwaysNothing:

alwaysNothing :: Integer -> Maybe Integer
alwaysNothing _ = Nothing

关于haskell - 如何将文字 1 作为 Maybe Integer 返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74951108/

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