let's have case class mycaseclass 2 fields in constructor, , sequence of values of case class, sequence.
how unzip sequence?
if fields a , b i'd write
(sequence map (_.a), sequence map (_.b)) ok, traverse sequence twice, list traversal cheap, i'd wager quicker using option.get.
edit: after rex's comment, couldn't resist running benchmark myself; results below...
times in ms 100 traversals of 10000 elem collection, l = list, = array, v = vector // java 6 // java 7 sequence.unzip{case mycaseclass(a,b) => (a,b)} //l 173 101 v 87 //l 27 29 v 21 sequence.unzip{mycaseclass.unapply(_).get} //l 194 116 v 100 //l 35 32 v 25 (sequence map (_.a), sequence map (_.b)) //l 177 70 v 86 //l 34 20 v 23 your results may vary, according cpu, memory, jre version, collection size, phase of moon etc.
Comments
Post a Comment