相关疑难解决方法(0)

笛卡尔积在斯卡拉兹中

Eric Torreborre关于迭代器模式的本质论文的,他描述了导线的笛卡尔积也是如何遍历.

任何人都可以使用scalaz库向我展示这个例子,因为我无法弄明白.让我们说问题是,对于List[Int]我想提供的两个:

  1. Int列表中元素的总和
  2. List[String]其中的元件通过附加"Z"到的String表示创建的Int小号

我的理解是,我可以使用traverse这种方式,但只是实际遍历我的结构一次,不像这个解决方案:

val xs = List(1, 2, 3, 4)
val (sum, strings)  = (xs.sum, xs map (_.toString + "Z"))
Run Code Online (Sandbox Code Playgroud)

注1 - 我知道还有其他方法可以做到这一点,我不需要遍历这个例子,也不一定是最简单的解决方法.但是,我试图理解遍历,所以我真的在寻找所述问题的答案


编辑 - 感谢missfaktor下面显示如何使用State.我想我想知道的是我如何编写两个独立的计算.例如; 我的职能在概念上如下:

val shape = (_ : List[Int]) map (_.toString + "Z")
val accum = (_ : List[Int]).sum
Run Code Online (Sandbox Code Playgroud)

我希望这些累积机制彼此独立,然后选择是否List[Int]使用其中一个两个来遍历我.我想象一些代码有点像这样: …

functional-programming scala traversal scalaz

5
推荐指数
1
解决办法
877
查看次数

标签 统计

functional-programming ×1

scala ×1

scalaz ×1

traversal ×1