File: t1133.scala

package info (click to toggle)
scala 2.11.12-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 62,924 kB
  • sloc: javascript: 28,808; java: 13,415; xml: 3,135; sh: 1,620; python: 756; makefile: 38; awk: 36; ansic: 6
file content (32 lines) | stat: -rw-r--r-- 901 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
object Match
{
  def main(args: Array[String]) = {
    args(0) match {
        case Extractor1(Extractor2(Extractor3("dog", "dog", "dog"), x2, x3), b, c, Extractor3("b", "b", f), e) => println(e)
        case Extractor3(Extractor2(Extractor1("a", "aa", "aaa", "aa", "a"), Extractor2("a", "aa", "aaa"), e), y, z) => println(e)
        case Extractor2(Extractor3("a", "a", x), Extractor3("b", "b", y), Extractor3("c", "c", z)) => println(z)
        case _ => println("fail")
    }
  }

  object Extractor1 {
    def unapply(x: Any) = x match {
        case x: String => Some(x, x+x, x+x+x, x+x, x)
        case _ => None
    }
  }

  object Extractor2 {
    def unapply(x: Any) = x match {
        case x: String => Some(x, x+x, x+x+x)
        case _ => None
    }
  }

  object Extractor3 {
    def unapply(x: Any) = x match {
        case x: String => Some(x, x, x)
        case _ => None
    }
  }
}