gpt4 book ai didi

haskell - 包含不同类型的列表

转载 作者:行者123 更新时间:2023-12-05 08:28:27 26 4
gpt4 key购买 nike

我目前正在编写自己的结构,它可以同时处理整数和字符串:

有点像

data Collection = One Int | Two String | Three(Collection)(Collection)

但是,我试图编写一个可以将我的结构转换为列表的函数。

我是否认为这是不可能的,因为默认情况下:

[1,2,"test"]

在控制台中不起作用,因此我的功能注定总是失败?

最佳答案

你可能应该只定义

type Collection = [Either Int String]

然后,而不是做

l = [1,2,"test"]

你可以做到

l :: Collection
l = [Left 1, Left 2, Right "test"]

如果您需要两种以上的类型,您需要定义自己的成员类型。所以你也会做这样的事情

data MemberType = MyInt Int | MyString String | MyFloat Float deriving Show
type Collection = [MemberType]
l :: Collection
l = [MyInt 1, MyInt 2, MyString "test", MyFloat 2.2]

派生 Show 不是必需的,但是能够简单地执行 print l 以一种很好的方式打印列表是很好的。

关于haskell - 包含不同类型的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12485726/

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