gpt4 book ai didi

Haskell 数据类型字段

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

我有自己的数据类型:

type Types = String
data MyType = MyType [Types]

我有一个实用函数:

initMyType :: [Types] -> MyType
initMyType types = Mytype types

现在我创建:

let a = MyType ["1A", "1B", "1C"]

如何从 a 获取列表 ["1A", "1B", "1C"]?一般来说,如何从数据构造函数获取数据?

最佳答案

除了使用模式匹配(如 arrowdodger 的答案所示)之外,您还可以使用记录语法自动定义访问器:

data MyType = MyType { getList :: [Types] }

这定义了一个与完全相同的类型

data MyType = MyType [Types]

还定义了一个函数

getList :: MyType -> [Types]

并允许(但不要求)语法 MyType { getList = ["a", "b", "c"] } 来构造 MyType 的值。顺便说一句, initMyTypes 并不是真正必要的,除非它除了构造值之外还执行其他操作,因为它的作用与构造函数 MyType 完全相同(但不能用于模式匹配)。

关于Haskell 数据类型字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8047700/

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