Skip to content

Instantly share code, notes, and snippets.

// zip3 Lists
object ZipUtils {
def zip3[A, B, C] (xs: List[A], ys: List[B], zs: List[C]) : List[(A, B, C)] = {
def zip3_aux(xs: List[A], ys: List[B], zs: List[C],
acc: List[(A, B, C)]) : List[(A, B, C)] = (xs, ys, zs) match {
case (xh :: xt, yh :: yt, zh :: zt) => zip3_aux (xt, yt, zt, (xh, yh, zh) :: acc )
case _ => acc.reverse
}
zip3_aux(xs, ys, zs, Nil)
}