Я просто изучаю scala и работаю над созданием кода в качестве упражнений.Я знаю, что сопоставление с образцом популярно в Haskell и надеется сделать то же самое в scala.
def part1(visited: Set[Coord], current: Coord, directions: String): Set[Coord] = directions match {
case "^" :: tail => part1(visited + current, current.up, tail)
case "v" :: tail => part1(visited + current, current.down, tail)
case "<" :: tail => part1(visited + current, current.left, tail)
case ">" :: tail => part1(visited + current, current.right, tail)
case _ => visited + current // The string is empty
}
Я пытался конвертировать, используя Array или List символов вместо строки, но продолжаю застревать.Код, который я вставил выше, сообщает:
Day3.scala:8: error: constructor cannot be instantiated to expected type;
found : scala.collection.immutable.::[B]
required: Array[Char]
case '^' :: tail => part1(visited + current, current.up, tail)
^