2012-11-03 12 views

Odpowiedz

7

spróbować zrozumieniem:

for(i <- list; p <- List(0, i)) yield p 

Jednak trzeba jakoś usunąć pierwszy element (to daje: 0,1,0,2,0,3), albo przez:

(for(i <- list; p <- List(0, i)) yield p).tail 

lub:

list.head :: (for(i <- list.tail; p <- List(0, i)) yield p) 
5

Tutaj to inne podejście:

def intersperse[E](x: E, xs:Seq[E]): Seq[E] = (x, xs) match { 
    case (_, Nil)  => Nil 
    case (_, Seq(x)) => Seq(x) 
    case (sep, y::ys) => y+:sep+:intersperse(sep, ys) 
} 

która jest bezpieczna również przy pustym Seq s.

Powiązane problemy