File tree Expand file tree Collapse file tree 4 files changed +34
-0
lines changed Expand file tree Collapse file tree 4 files changed +34
-0
lines changed Original file line number Diff line number Diff line change
1
+ package scala .collection
2
+
3
+ /** An extractor used to head/tail deconstruct sequences. */
4
+ object +: {
5
+ def unapply [T ,Coll <: SeqLike [T , Coll ]](
6
+ t : Coll with SeqLike [T , Coll ]): Option [(T , Coll )] =
7
+ if (t.isEmpty) None
8
+ else Some (t.head -> t.tail)
9
+ }
10
+
11
+ /** An extractor used to init/last deconstruct sequences. */
12
+ object :+ {
13
+ /** Splits a sequence into init :+ tail.
14
+ * @returns Some(init, tail) if sequence is non-empty.
15
+ * None otherwise.
16
+ */
17
+ def unapply [T ,Coll <: SeqLike [T , Coll ]](
18
+ t : Coll with SeqLike [T , Coll ]): Option [(Coll , T )] =
19
+ if (t.isEmpty) None
20
+ else Some (t.init -> t.last)
21
+ }
Original file line number Diff line number Diff line change @@ -64,6 +64,9 @@ package object scala {
64
64
type :: [A ] = scala.collection.immutable.:: [A ]
65
65
val :: = scala.collection.immutable.::
66
66
67
+ val +: = scala.collection.+:
68
+ val :+ = scala.collection.:+
69
+
67
70
type Stream [+ A ] = scala.collection.immutable.Stream [A ]
68
71
val Stream = scala.collection.immutable.Stream
69
72
val #:: = scala.collection.immutable.Stream .#::
Original file line number Diff line number Diff line change
1
+ It worked! head=1
2
+ It worked! last=3
Original file line number Diff line number Diff line change
1
+ object Test extends App {
2
+ Vector (1 ,2 ,3 ) match {
3
+ case head +: tail => println(" It worked! head=" + head)
4
+ }
5
+ Vector (1 ,2 ,3 ) match {
6
+ case init :+ last => println(" It worked! last=" + last)
7
+ }
8
+ }
You can’t perform that action at this time.
0 commit comments