gpt4 book ai didi

Haskell 添加自定义数据类型

转载 作者:行者123 更新时间:2023-12-02 14:48:39 26 4
gpt4 key购买 nike

只需要在这里解释 Haskell 的基本语法,因为我显然遗漏了一些东西,而且我找不到任何解释如何正确执行此操作的内容。

给定:

data Year = Year Integer

如何允许添加,例如 (Year 2000) + 10这将返回 Year 2010

我试过了

instance Num Year where
(Year a) + (b) = Year (a + b)

但这没有用。尝试了其他一些,但我认为这是最明显的解决方案。

感谢您的帮助。

最佳答案

Num 定义 + 如下:

(+) :: a -> a -> a

所以+的左边和右边必须是相同的类型。您尝试定义一个 Num 实例,但情况并非如此。如果您愿意,您可以使 + 在两个 Year 上工作:

Year a + Year b = Year (a + b)

但是,如果您希望能够添加年份整数,则需要使用不同的运算符名称,例如:

Year a +++ b = Year (a + b)

(如果您选择了这条路线,您可能需要为这个新运算符定义优先级。)

关于Haskell 添加自定义数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27477783/

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