【发布时间】:2020-02-14 05:47:03
【问题描述】:
所以我真的是 Haskell 的新手,并且有一个定义叫做:
x :: [(char,Int)]
x 需要被定义为一个函数,它只是将字符 (x,y,z) 与 (1,2,3) 以各种方式放在一起。
所以当我调用x 时,我只想得到[x,1], [x,2], [x,3], [y,1], [y,2] 的输出等等。
可能是一些简单的问题,但我很困惑x 函数中没有实际输入。它只需要输出列表。
我已尝试创建两个列表(数字和字符列表),但如何将它们放在函数中?
【问题讨论】:
-
提示:使用列表理解;)如果你失败了,用你的疑问编辑这个问题
-
好的,我知道了,谢谢你的提示:D
-
想想你的函数 x。你说它没有输入,但它从哪里得到你想要组合的元组(或列表?)?请注意,您不能在这里互换使用括号和方括号,所以我不能 100% 确定您正在寻找什么。也许一个函数需要两个 LISTS 并产生一个 LIST 对(即 2 元组列表)?我假设您不想完全使用字符 x、y、z 和 1、2、3,而是使用更灵活的字符(例如,任何两个大小相等的列表?)。
-
x :: [(Char, Int)]不是一个定义;这是一个类型注释。此外,x不是一个函数,而是一个元组列表。采用字符列表[Char]和整数列表[Int]来生成具有相同类型x的函数的函数将具有[Char] -> [Int] -> [(Char, Int)]类型。你的工作是定义一些函数foo :: [Char] -> [Int] -> [(Char, Int)]。 -
@Willem 更正的是答案,而不是问题。 :) 我认为您的编辑应该回滚。
标签: list haskell combinations cartesian-product