@@ -34,12 +34,16 @@ object ZippedTraversable3 {
34
34
final class Tuple3Zipped [El1 , Repr1 , El2 , Repr2 , El3 , Repr3 ](val colls : (TraversableLike [El1 , Repr1 ], IterableLike [El2 , Repr2 ], IterableLike [El3 , Repr3 ]))
35
35
extends AnyVal with ZippedTraversable3 [El1 , El2 , El3 ] {
36
36
37
+ private def coll1 = colls._1
38
+ private def coll2 = colls._2
39
+ private def coll3 = colls._3
40
+
37
41
def map [B , To ](f : (El1 , El2 , El3 ) => B )(implicit cbf : CBF [Repr1 , B , To ]): To = {
38
- val b = cbf(colls._1 .repr)
39
- val elems2 = colls._2 .iterator
40
- val elems3 = colls._3 .iterator
42
+ val b = cbf(coll1 .repr)
43
+ val elems2 = coll2 .iterator
44
+ val elems3 = coll3 .iterator
41
45
42
- for (el1 <- colls._1 ) {
46
+ for (el1 <- coll1 ) {
43
47
if (elems2.hasNext && elems3.hasNext)
44
48
b += f(el1, elems2.next(), elems3.next())
45
49
else
@@ -49,11 +53,11 @@ final class Tuple3Zipped[El1, Repr1, El2, Repr2, El3, Repr3](val colls: (Travers
49
53
}
50
54
51
55
def flatMap [B , To ](f : (El1 , El2 , El3 ) => TraversableOnce [B ])(implicit cbf : CBF [Repr1 , B , To ]): To = {
52
- val b = cbf(colls._1 .repr)
53
- val elems2 = colls._2 .iterator
54
- val elems3 = colls._3 .iterator
56
+ val b = cbf(coll1 .repr)
57
+ val elems2 = coll2 .iterator
58
+ val elems3 = coll3 .iterator
55
59
56
- for (el1 <- colls._1 ) {
60
+ for (el1 <- coll1 ) {
57
61
if (elems2.hasNext && elems3.hasNext)
58
62
b ++= f(el1, elems2.next(), elems3.next())
59
63
else
@@ -66,14 +70,14 @@ final class Tuple3Zipped[El1, Repr1, El2, Repr2, El3, Repr3](val colls: (Travers
66
70
implicit cbf1 : CBF [Repr1 , El1 , To1 ],
67
71
cbf2 : CBF [Repr2 , El2 , To2 ],
68
72
cbf3 : CBF [Repr3 , El3 , To3 ]): (To1 , To2 , To3 ) = {
69
- val b1 = cbf1(colls._1 .repr)
70
- val b2 = cbf2(colls._2 .repr)
71
- val b3 = cbf3(colls._3 .repr)
72
- val elems2 = colls._2 .iterator
73
- val elems3 = colls._3 .iterator
73
+ val b1 = cbf1(coll1 .repr)
74
+ val b2 = cbf2(coll2 .repr)
75
+ val b3 = cbf3(coll3 .repr)
76
+ val elems2 = coll2 .iterator
77
+ val elems3 = coll3 .iterator
74
78
def result = (b1.result(), b2.result(), b3.result())
75
79
76
- for (el1 <- colls._1 ) {
80
+ for (el1 <- coll1 ) {
77
81
if (elems2.hasNext && elems3.hasNext) {
78
82
val el2 = elems2.next()
79
83
val el3 = elems3.next()
@@ -91,10 +95,10 @@ final class Tuple3Zipped[El1, Repr1, El2, Repr2, El3, Repr3](val colls: (Travers
91
95
}
92
96
93
97
def exists (@ deprecatedName(' f ) p : (El1 , El2 , El3 ) => Boolean ): Boolean = {
94
- val elems2 = colls._2 .iterator
95
- val elems3 = colls._3 .iterator
98
+ val elems2 = coll2 .iterator
99
+ val elems3 = coll3 .iterator
96
100
97
- for (el1 <- colls._1 ) {
101
+ for (el1 <- coll1 ) {
98
102
if (elems2.hasNext && elems3.hasNext) {
99
103
if (p(el1, elems2.next(), elems3.next()))
100
104
return true
@@ -108,22 +112,22 @@ final class Tuple3Zipped[El1, Repr1, El2, Repr2, El3, Repr3](val colls: (Travers
108
112
! exists((x, y, z) => ! p(x, y, z))
109
113
110
114
def foreach [U ](f : (El1 , El2 , El3 ) => U ): Unit = {
111
- val elems2 = colls._2 .iterator
112
- val elems3 = colls._3 .iterator
115
+ val elems2 = coll2 .iterator
116
+ val elems3 = coll3 .iterator
113
117
114
- for (el1 <- colls._1 ) {
118
+ for (el1 <- coll1 ) {
115
119
if (elems2.hasNext && elems3.hasNext)
116
120
f(el1, elems2.next(), elems3.next())
117
121
else
118
122
return
119
123
}
120
124
}
121
125
122
- override def toString : String = " (%s, %s, %s ).zipped" .format(colls._1.toString, colls._2.toString, colls._3.toString)
126
+ override def toString = s " ( $coll1 , $coll2 , $coll3 ).zipped "
123
127
}
124
128
125
129
object Tuple3Zipped {
126
- final class Ops [T1 , T2 , T3 ](val x : (T1 , T2 , T3 )) extends AnyVal {
130
+ final class Ops [T1 , T2 , T3 ](private val x : (T1 , T2 , T3 )) extends AnyVal {
127
131
def invert [El1 , CC1 [X ] <: TraversableOnce [X ], El2 , CC2 [X ] <: TraversableOnce [X ], El3 , CC3 [X ] <: TraversableOnce [X ], That ]
128
132
(implicit w1 : T1 <:< CC1 [El1 ],
129
133
w2 : T2 <:< CC2 [El2 ],
0 commit comments