我是 Scala 的新手,通过 Haskell 进行函数式编程的经验非常有限。
我想尝试编写从单个输入列表构造的所有可能对的列表。例子:
val nums = List[Int](1, 2, 3, 4, 5) // Create an input list
val pairs = composePairs(nums) // Function I'd like to create
// pairs == List[Int, Int]((1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (2, 1) ... etc)
我尝试zip
在每个元素上使用整个列表,希望它会在整个列表中复制一个项目。它不起作用(仅匹配第一个可能的对)。我不确定如何重复一个元素(Haskell 会这样做cycle
,take
我相信),而且我在遵循 Scala 上的文档时遇到了麻烦。
这让我想,可能有一种更简洁、更实用的方式来获得我想要的结果。有人有好的解决方案吗?