2

我正在尝试使用 Scala 完成 Udacity 的 CS212,但在使用 Zebra Puzzle 时遇到了问题,

python 中的一些概念并不容易转换为 Scala,尤其是对于像我这样的初学者。

python代码的SS

这些是我到目前为止管理的代码,

  val houses = List(1, 2, 3, 4, 5)
  val orderings = houses.permutations

  def imright(h1: Int, h2: Int): Boolean = {
    if (h1 - h2 == 1) true
    else false
  }

  def nextto(h1: Int, h2: Int): Boolean = {
    if (math.abs(h1 - h2) == 1) true
    else false
  }

the houses = [first, _, middle, _. _] = [1, 2, 3, 4, 5]难倒我。此外,我如何for (red, green, ivory, yellow, blue) in orderings在 Scala 中表达?请帮助我,谢谢。

4

1 回答 1

6

你要

val houses = List(1, 2, 3, 4, 5)
val List(first, _, middle, _, _) = houses

for (List(red, green, ivory, yellow, blue) <- orderings)

分别。另外,请注意,在 Scala 中,这些类型的解构必须分配给以小写字母开头的变量;大写表示它应该与现有变量匹配(如果不匹配,则抛出异常!)。

于 2012-12-30T12:18:05.817 回答