2016-06-21 2 views
0

Вчера я спросил о From a List representation of a Map, to a real Map in ScalaDecompress дельта сжимается последовательность чисел в Scala

После нескольких очень умного ответа, я знаю, что нужно изменить мой ум, чтобы работать в Scala, и я уверен, что StackOverflow путь.

В этом случае я хочу распаковать последовательность чисел, хранящихся с использованием дельта-сжатия. Я думаю, что моя реализация очень проста, но я уверен, что вы, ребята, найдете другой более функциональный способ.

def deltaDecompression(compressed : Seq[Long]) = { 
    var previous = 0L 
    compressed.map(current => { 
    previous += current 
    previous 
    }) 
} 

assert(deltaDecompression(Seq(100,1,2,3)) == Seq(100,101,103,106)) 

Так как в моем предыдущем вопросе, вопрос: можно реализовать эту функцию, используя более функциональный путь?

Пример ввода данных и ожидаемого вывода в последней строке кода в качестве утверждения.

ответ

1

compressed.scanLeft(0l) { _ + _ }.drop(1)

+0

еще раз. вы отлично :) Но есть ошибка: Выражение типа * Int, Long) => Long не соответствует ожидаемому типу (Int, Long) => Int – angelcervera

+0

Да ... Я оставлю для вас подумайте, как упражнение;) – Dima

+0

'tail' может выглядеть чище –

Смежные вопросы