在Haskell中,如何创建具有多种类型的列表?

在Haskell中,如何创建具有多种类型的列表?,haskell,functional-programming,Haskell,Functional Programming,我的任务是生成一个列表,其中也可以包含字符串和整数。如何在Haskell中解决此问题?这将是[任意字符串整数] data StringOrInt = MyString String | MyInt Int deriving (Eq, Show) x :: [StringOrInt] x = [MyString "a", MyInt 2] 注意:这不是一个可以包含字符串和整数的列表,这是一个“eithers”列表,其中每个“非此即彼”可以包含字符串或整数(包含两个级别)。有多种其他

我的任务是生成一个列表,其中也可以包含字符串和整数。如何在Haskell中解决此问题?

这将是
[任意字符串整数]

data StringOrInt
  = MyString String
  | MyInt Int
  deriving (Eq, Show)

x :: [StringOrInt]
x = [MyString "a", MyInt 2]

注意:这不是一个可以包含字符串和整数的列表,这是一个“eithers”列表,其中每个“非此即彼”可以包含字符串或整数(包含两个级别)。有多种其他方法可以近似“可以包含字符串和整数的列表”,但不建议使用这些方法

Haskell中的异构列表是不可能的(至少对于默认列表是不可能的)。但是,你可以列一个列表,然后使用,比如说,左a,右2,右4,左b,先问问自己为什么需要字符串和整数在同一个列表中。切普纳:我不知道:(我从学校得到了这个任务。威廉:很有效,谢谢!:)谢谢你们,伙计们!哪种解决方案是最推荐的?@michielworkent是的,使用标准的东西有标准化的好处,即大多数程序员都熟悉。还稍微探讨了
动态