Я думаю, что всем советуют разбить эту вещь на более управляемые куски, это лучший подход. Одним из способов отладки небольших выражений является кража функции tap Руби, как описано здесь . «tap» позволяет вам вставить выражение в середине цепочки, например, и, возможно, вывести некоторые значения отладки, например:
val ls = List(1,2,3).map(_ * 2)
.tap(soFar => println("So far: " + soFar))
.map(_ * 2)
println(ls)
Это распечатает:
Пока: Список (2, 4, 6)
Список (4, 8, 12)
Это помогает мне время от времени.