gpt4 book ai didi

scala - 在 Scala 中使用 for comprehension

转载 作者:行者123 更新时间:2023-12-02 05:42:58 25 4
gpt4 key购买 nike

def combinations(occurrences: List[(Char,Int)]): List[List[(Char,Int)]] = occurrences match {
case Nil => Nil
case x :: xs => for(z <- combinations(xs); y <- occ(x)) yield (y :: z)
}

def occ(e: (Char, Int)): List[(Char, Int)] = (for(i <- 0 to e._2) yield (e._1, i)).toList

你好,

我在上面的代码片段中找不到任何缺陷,但它仍然为我提供任何输入的 List()。

最佳答案

好吧,我认为您已经非常接近答案了。最重要的是考虑在 Nil 的情况下什么是正确的返回值。

  def combinations(occurrences: Occurrences): List[Occurrences] = occurrences match {
case Nil => List(List())
case x :: xs =>
for {
z <- combinations(xs)
n <- 0 to x._2
} yield (if (n == 0) z else (x._1, n) :: z)
}

关于scala - 在 Scala 中使用 for comprehension,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16490363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com