All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.twitter.jaqen.ntuple.TryNTuple.scala Maven / Gradle / Ivy

The newest version!
package com.twitter.jaqen.ntuple

import PrintExpr._
import NTuple._

class Foo {

}

object TryNTuple {
  def main(args: Array[String]) {
     println("mkString: " + t("a" -> "FOO", "b" -> 3).mkString)
    val name = "foo"
    // does not compile: name must be a literal
//    val tuple0 = NTuple1.t(name, "bar")
        val map = Map("a" -> 1, "b" -> "boo")
    val ma = map("a")
    val mb = map("b")
    val map2 = map + ("a" -> 2)
    val ma2 = map2("a")

    // runtime error: key not found: c
//    val mc = map("c")

    val tuple00 = t("a" -> 1)
    println('symbol.name)
    val tuple000 = t('a -> 1)
    val tuple001 = t("a" -> 1, "b" -> "bar")
    println(t("a" -> 1, "b" -> "bar") + "")
    println("" + t("a" -> 1, "b" -> "bar"))
    val b001 = tuple001("b")
    val a001 = tuple001('a)
    // does not compile: tuple001 does not contain key "c"
//    val c001 = tuple001("c")

    val tuple01 = t("a" -> 1)
    val a01 = tuple01("a")

    val val1 = 1
    val tuple1 = t("a" -> val1)
    println(tuple1)

    val v: Int = tuple1("a")
    println(v)

    // does not compile: name is not a literal
//    val v1: Int = tuple1(name)

    // does not compile: tuple1 does not contain key "b"
//    val v2 = tuple1("b")

    val tuple2 = t("a" -> 1, "b" -> "bar")
    println(tuple2)

    val v3 = tuple2("a")
    println(v3)

    val v4 = tuple2("b")
    println(v4)

    // does not compile: tuple2 does not contain key "c"
//    val v5 = tuple2("c")
    val b = "FOOBAR"
    val tuple3 = t(b)
    println(tuple3("b"))
    println(tuple3('b))

    // does not compile: ntuple.NTuple already contains key a
//    val tuple4 = t('a->1, 'a->2)
//    println(tuple4('a))

    val tuple5 = t("a" -> 1)
    val tuple6 = t("b" -> "bar")
    val tuple7 = tuple5 ++ tuple6
    println("tuple7.toString " + tuple7)
    println("tuple7.mkString " + tuple7.mkString)
    println("tuple7.toMap " + tuple7.toMap)
    val m = t("b" -> "bar").toMap

    // does not compile: tuple7 already contains key a
//    val tuple8 = tuple7 ++ tuple1 ++ tuple7
//restore //    val tuple8 = tuple7 ++ tuple1.prefix("t1.") ++ tuple7.prefix("t7.")
//    println("tuple8 " + tuple8)
//     println("tuple8 x 2 " + tuple8 ++ tuple8))

    val tuple9 = t("a" -> 1).-("a")
    println((tuple2 - 'b).mkString)
    println((tuple2 - 'a).mkString)
    println((tuple2 - 'a - "b").mkString)

    println(tuple7.prefix("foo.").mkString)

    val tuple10 = tuple7.prefix("foo.")

    println(tuple10("foo.a"))
    println(tuple7.prefix("foo.").apply("foo.a"))

    println((t("a" -> 1) -+ ("a" -> 2)).mkString)

    val tuple11 = t('a -> 1, 'b ->2)
    val tuple12 = tuple11 + ('c -> (tuple11('a) + tuple11('b)))
    val f = (a: Int, b: Int) => a + b
//    printExpr((a: Int, b: Int) => a + b)

//    printExpr(f)
    val tuple13 = tuple11.map(('a, 'b) -> 'c) { (a: Int, b: Int) => a + b }
//    val tuple14 = tuple11.map(('a, 'b) -> 'a) { (a: Int, b: Int) => a + b }
    println(tuple13.mkString)

    val tuple15 = t('a -> 1, 'b -> 2)
    println("blah")

  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy