Возврат списка определенного пользователем типа класса Scala - PullRequest
0 голосов
/ 02 июня 2018

Я пытаюсь вернуть список всех столбцов, которые не заполнены ниже в функции.Функция isColumnFull проверит, заполнен ли список или нет.GameState представляет собой список списка.Я не уверен, где ошибка.Не могли бы вы помочь?

type GameState = List[List[String]]

case class ColumnNum(index: Int)

val count = 0 //not sure this is needed
def allViableColumns(game: GameState): List[ColumnNum] = 
for((xs, count) <- game.zipWithIndex) yield {if(!isColumnFull(xs))List(count+1)} 

1 Ответ

0 голосов
/ 02 июня 2018

Если вам нужны индексы столбцов:

type GameState = List[List[String]]
case class ColumnNum(index: Int)
def allViableColumns(game: GameState): List[ColumnNum] = 
  for((xs, i) <- game.zipWithIndex; if !isColumnFull(xs)) yield ColumnNum(i + 1)

Если вам нужны столбцы, это просто:

def allViableColumns(game: GameState): List[List[String]] = 
  game filterNot isColumnFull

Если вы решите использовать первую версию, рассмотрите возможность изменения(i + 1) - i: обычно нет веских причин для индексации по одному.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...