scala - convert timestamps to intervals -


i wrote scala function converts list of timestamps intervals

  def tointervals(timestamps: list[string]) = {     def helper(timestamps: list[string], accu: list[long]): list[long] = {       if (timestamps.tail.isempty) accu.reverse       else {         val first = timestamps.head.tolong         val second = timestamps.tail.head.tolong         val newhead = second - first         helper(timestamps.tail, newhead :: accu)       }     }     helper(timestamps, list())   } 

and without tailcall

  def tointervals(timestamps: list[string]) : list[long]  = {       if (timestamps.tail.isempty) list()       else {         val first = timestamps.head.tolong         val second = timestamps.tail.head.tolong         val newhead = second - first         newhead :: tointervals(timestamps.tail)       }     } 

but have feeling there one/two liner e.g map2 . advice?

(timestamps.tail, timestamps).zipped.map(_.tolong - _.tolong) 

is one-liner; it's more efficient val times = timestamps.map(_.tolong) once, though (which make two-liner).


Comments

Popular posts from this blog

jquery - How can I dynamically add a browser tab? -

node.js - Getting the socket id,user id pair of a logged in user(s) -

keyboard - C++ GetAsyncKeyState alternative -