Scala отлаживает этот рекурсивный пример - PullRequest
0 голосов
/ 08 мая 2018
def append[T](xs: List[T], ys: List[T]): List[T] =
    println(xs)
    xs match {
        case List() => ys
        case x :: xs1 => x :: append(xs1, ys)
    }

append(List(1,2), List(3,4));

Таким образом, код println(xs) не будет работать. Я в основном хочу посмотреть, что происходит, когда xs1 - это просто массив из одного элемента. Но как я могу это сделать? Я, в основном, хочу посмотреть, будет ли этот список из одного элемента деконструирован в один элемент, и xs1 будет похоже на null или [] на следующем проходе.

Какие отладчики есть в Scala? Как я могу их использовать? Почему println(xs) не работает?

1 Ответ

0 голосов
/ 08 мая 2018

Вам не хватает пары скобок:

def append[T](xs: List[T], ys: List[T]): List[T] = {
    println(xs)
    xs match {
        case List() => ys
        case x :: xs1 => x :: append(xs1, ys)
    }
}

scastie - отличный способ опробовать небольшие фрагменты кода.

Если вы используете IntelliJ, есть отличный ответ о том, как настроить отладку.

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