list - 组成所有对的列表

标签 list scala functional-programming

我是 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 用 cycletake 我相信),而且我在遵循 Scala 文档时遇到了麻烦。

这让我觉得可能有一种更简洁、更实用的方法来获得我想要的结果。有人有好的解决方案吗?

最佳答案

这个怎么样:

val pairs = for(x <- nums; y <- nums) yield (x, y)

关于list - 组成所有对的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11803349/

相关文章:

c# - 在没有列表实例的情况下将项目添加到列表

Python - "map"字典的键列表

api - 为什么 fold 在 Scala 中有以下类型?

jquery - 如何在表单的 AJAX post 请求中传递 CSRF token ?

scala - 如何对 ArrayBuffer[Double] 进行排序并保存索引

java - 函数式编程应用

haskell - 计算 Haskell 函数的类型

Python:返回列表的第一个元素的索引,这使得传递的函数为真

c++ - 链表 - 覆盖数据

haskell - 设置graphics.gloss haskell