斯卡拉的斑马拼图

时间:2012-12-30 12:11:17

标签: python scala

我正在尝试使用Scala在Udacity的CS212上工作但是在使用Zebra Puzzle时遇到了麻烦,

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

SS of python codes

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

  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]难倒我。 此外,我如何在Scala中表达for (red, green, ivory, yellow, blue) in orderings?请帮助我,谢谢。

1 个答案:

答案 0 :(得分:6)

你想要

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

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

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