Функциональный код отладки определенно более сложный, чем отладочный императивный код. Здесь обсуждаются здесь, здесь и здесь. "Функциональная" отладка должна поддерживать проверку возвращаемого значения функций/замыканий/монад. Есть ли у каких-либо отладчиков /IDE возможность проверить промежуточные значения возврата?
Например, чтобы отладить эту строку в Scala, я должен выполнить 4 вызова функций и проверить возвращаемое значение на каждом шаге перед возвратом r
val r=(ls filter (_>1) sort (_<_) zipWithIndex) filter {v=>(v._2)%2==0} map{_._1}