gpt4 book ai didi

function - Haskell - 类型、枚举和函数

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

大家早上好,

这是我今天正在做的工作,以及我遇到的问题:

--A
data Row = A | B | C | D | E | F | G | H | I | J deriving (Enum, Ord, Show, Bounded, Eq, Read)
data Column = One | Two | Three | Four | Five | Six | Seven | Eight | Nine | Ten deriving (Enum, Ord, Show, Bounded, Eq, Read)
--B
data Address = Address Row Column deriving (Show, Read, Eq)

然后几行之后,我得到了问题 child :
toAddress r c = Address(toEnum r, toEnum c)

我需要提供 Address a Row 和 Column,但我需要将 r 和 c 转换为 Row 和 Column(不是 Ints)

显然 toAddress 的结构不正确,无法执行此任务。要求如下:

Write a function toAddress that takes in a row and column, each in [0 − 9]. Construct an Address and return it. Use toEnum to index into your Row and Column enums lists.



有没有人对如何完成我在这里要做的事情有任何建议?

谢谢!

最佳答案

你的语法错了。

一个函数的函数应用f :: A -> B -> C在haskell 中看起来像这样f a b而不是 f(a,b) . f(a,b)仍然是正确的语法,但不是您想要的:它只将一个参数传递给函数(即由 a 和 b 组成的元组)。

所以toAddress的正确执行看起来像这样:

toAddress r c = Address (toEnum r) (toEnum c)

关于function - Haskell - 类型、枚举和函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16359971/

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