Revisions
-
oxbowlakes revised this gist
Feb 20, 2012 . 1 changed file with 4 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -128,10 +128,13 @@ res4: java.lang.String = FOO: Z1 Z2 Z3 Z4 Z5 Z6 Z7 Z8 Z9 Z10 Z11 Z12 Z13 Z14 Z1 scala> ("FOO: " /: res1) { (s, i) => s + " Z" + i } res47: java.lang.String = FOO: Z1 Z2 Z3 Z4 Z5 Z6 Z7 Z8 Z9 Z10 Z11 Z12 Z13 Z14 Z15 Z16 Z17 Z18 Z19 Z20 scala> ("FOO: " /: res1) (_ + " Z" + _) res48: java.lang.String = FOO: Z1 Z2 Z3 Z4 Z5 Z6 Z7 Z8 Z9 Z10 Z11 Z12 Z13 Z14 Z15 Z16 Z17 Z18 Z19 Z20 scala> res1.reduceLeft(_ * _) res2: Int = -2102132736 scala> res1.scanLeft(0)(_ + _) res3: List[Int] = List(0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210) //Conversions -
oxbowlakes revised this gist
Feb 20, 2012 . 1 changed file with 15 additions and 9 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -131,32 +131,38 @@ res47: java.lang.String = FOO: Z1 Z2 Z3 Z4 Z5 Z6 Z7 Z8 Z9 Z10 Z11 Z12 Z13 Z14 Z scala> res1.reduceLeft(_ * _) res2: Int = -2102132736 scala> res0.scanLeft(0)(_ + _) res3: List[Int] = List(0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210) //Conversions scala> (_ : Int) % 5 res4: Int => Int = <function1> scala> res1 map res4 res5: List[Int] = List(1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0) scala> (res1 map res4).toArray res6: Array[Int] = Array(1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0) scala> (res1 map res4).toSet res7: scala.collection.immutable.Set[Int] = Set(0, 1, 2, 3, 4) scala> (res1 map res4).toSeq res8: scala.collection.immutable.Seq[Int] = List(1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0) scala> (res1 map res4).toIndexedSeq res9: scala.collection.immutable.IndexedSeq[Int] = Vector(1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0) scala> (res1 map res4).toList res10: List[Int] = List(1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0) scala> (res1 map res4).toStream res11: scala.collection.immutable.Stream[Int] = Stream(1, ?) scala> (res1 map res4).iterator res12: Iterator[Int] = non-empty iterator scala> (res1 map (i => (i.toString + "Z") -> (i % 5))).toMap res13: scala.collection.immutable.Map[java.lang.String,Int] = Map(3Z -> 3, 2Z -> 2, 20Z -> 0, 11Z -> 1, 8Z -> 3, 1Z -> 1, 13Z -> 3, 17Z -> 2, 10Z -> 0, 9Z -> 4, 6Z -> 1, 16Z -> 1, 7Z -> 2, 5Z -> 0, 19Z -> 4, 15Z -> 0, 4Z -> 4, 18Z -> 3, 14Z -> 4, 12Z -> 2) scala> res1.view -
oxbowlakes revised this gist
Feb 20, 2012 . 1 changed file with 69 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -98,3 +98,72 @@ res36: Iterator[List[Int]] = non-empty iterator scala> res36.toList res37: List[List[Int]] = List(List(1, 2, 3, 4), List(5, 6, 7, 8), List(9, 10, 11, 12), List(13, 14, 15, 16), List(17, 18, 19, 20)) //Sorting scala> res1.max res38: Int = 20 scala> res1.min res39: Int = 1 scala> res1.sorted res40: List[Int] = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20) scala> res1.sortWith(_ > _) res42: List[Int] = List(20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1) scala> res1.sortBy(_.toString) res43: List[Int] = List(1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 20, 3, 4, 5, 6, 7, 8, 9) scala> res1.sorted(implicitly[Ordering[Int]].reverse) res44: List[Int] = List(20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1) //Accumulation and processing scala> res1.sum res45: Int = 210 scala> res1.foldLeft("FOO: ") { (s, i) => s + " Z" + i } res4: java.lang.String = FOO: Z1 Z2 Z3 Z4 Z5 Z6 Z7 Z8 Z9 Z10 Z11 Z12 Z13 Z14 Z15 Z16 Z17 Z18 Z19 Z20 scala> ("FOO: " /: res1) { (s, i) => s + " Z" + i } res47: java.lang.String = FOO: Z1 Z2 Z3 Z4 Z5 Z6 Z7 Z8 Z9 Z10 Z11 Z12 Z13 Z14 Z15 Z16 Z17 Z18 Z19 Z20 scala> res1.reduceLeft(_ * _) res2: Int = -2102132736 //Conversions scala> res1 map (_ % 5) res5: List[Int] = List(1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0) scala> res1 map (_ % 5) toArray res6: Array[Int] = Array(1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0) scala> res1 map (_ % 5) toSet res7: scala.collection.immutable.Set[Int] = Set(0, 1, 2, 3, 4) scala> res1 map (_ % 5) toSeq res8: scala.collection.immutable.Seq[Int] = List(1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0) scala> res1 map (_ % 5) toIndexedSeq res9: scala.collection.immutable.IndexedSeq[Int] = Vector(1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0) scala> res1 map (_ % 5) toList res10: List[Int] = List(1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0) scala> res1 map (_ % 5) toStream res11: scala.collection.immutable.Stream[Int] = Stream(1, ?) scala> res1 map (_ % 5) iterator res12: Iterator[Int] = non-empty iterator scala> res1 map (i => (i.toString + "Z") -> (i % 5)) toMap res13: scala.collection.immutable.Map[java.lang.String,Int] = Map(3Z -> 3, 2Z -> 2, 20Z -> 0, 11Z -> 1, 8Z -> 3, 1Z -> 1, 13Z -> 3, 17Z -> 2, 10Z -> 0, 9Z -> 4, 6Z -> 1, 16Z -> 1, 7Z -> 2, 5Z -> 0, 19Z -> 4, 15Z -> 0, 4Z -> 4, 18Z -> 3, 14Z -> 4, 12Z -> 2) scala> res1.view res14: java.lang.Object with scala.collection.SeqView[Int,List[Int]] = SeqView(...) scala> res1.par res15: scala.collection.parallel.immutable.ParSeq[Int] = ParVector(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20) scala> res1.seq res16: scala.collection.immutable.Seq[Int] = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20) -
oxbowlakes revised this gist
Feb 20, 2012 . 1 changed file with 75 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -23,4 +23,78 @@ scala> (res1 take 3).mkString(", ") res11: String = 1, 2, 3 scala> (res1 take 3).mkString("[", ", ", "]") res12: String = [1, 2, 3] //Searching scala> res1 find (_ % 7 == 3) res13: Option[Int] = Some(3) scala> res1 find (_ > 20) res14: Option[Int] = None //Quantification scala> res1 exists (_ > 20) res15: Boolean = false scala> res1.forall(_ < 25) res16: Boolean = true //2 separate syntaxes for filtering scala> res1 filter (_ % 2 == 0) res2: List[Int] = List(2, 4, 6, 8, 10, 12, 14, 16, 18, 20) scala> res1 filter (i => i % 2 == 0) res3: List[Int] = List(2, 4, 6, 8, 10, 12, 14, 16, 18, 20) //Filtering and mapping 2 ways scala> res1 filter (_ % 2 == 0) map (_.toString + "Z") res5: List[java.lang.String] = List(2Z, 4Z, 6Z, 8Z, 10Z, 12Z, 14Z, 16Z, 18Z, 20Z) scala> res1 collect { case i if i % 2 == 0 => i.toString + "Z" } res6: List[java.lang.String] = List(2Z, 4Z, 6Z, 8Z, 10Z, 12Z, 14Z, 16Z, 18Z, 20Z) //Flattening and mapping. Um, flatMap! scala> res1 take 5 map (Some(_)) res19: List[Some[Int]] = List(Some(1), Some(2), Some(3), Some(4), Some(5)) scala> res19.flatten res20: List[Int] = List(1, 2, 3, 4, 5) scala> res1 take 4 flatMap (i => Some(i + "Z")) res21: List[String] = List(1Z, 2Z, 3Z, 4Z) //Organizing: spans and partitions scala> res1 takeWhile (_ % 5 != 0) res28: List[Int] = List(1, 2, 3, 4) scala> res1 dropWhile (_ % 5 != 0) res29: List[Int] = List(5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20) scala> res1 span (_ % 5 != 0) res30: (List[Int], List[Int]) = (List(1, 2, 3, 4),List(5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)) scala> res1 partition (_ % 5 != 0) res31: (List[Int], List[Int]) = (List(1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18, 19),List(5, 10, 15, 20)) //Zipping scala> res1 take 5 zipWithIndex res32: List[(Int, Int)] = List((1,0), (2,1), (3,2), (4,3), (5,4)) scala> res32.unzip res0: (List[Int], List[Int]) = (List(1, 2, 3, 4, 5),List(0, 1, 2, 3, 4)) //Grouping/Chunking scala> res1 groupBy (_ % 5) res35: scala.collection.immutable.Map[Int,List[Int]] = Map(0 -> List(5, 10, 15, 20), 1 -> List(1, 6, 11, 16), 2 -> List(2, 7, 12, 17), 3 -> List(3, 8, 13, 18), 4 -> List(4, 9, 14, 19)) scala> res1 sliding 3 res33: Iterator[List[Int]] = non-empty iterator scala> res33 toList res34: List[List[Int]] = List(List(1, 2, 3), List(2, 3, 4), List(3, 4, 5), List(4, 5, 6), List(5, 6, 7), List(6, 7, 8), List(7, 8, 9), List(8, 9, 10), List(9, 10, 11), List(10, 11, 12), List(11, 12, 13), List(12, 13, 14), List(13, 14, 15), List(14, 15, 16), List(15, 16, 17), List(16, 17, 18), List(17, 18, 19), List(18, 19, 20)) scala> res1 grouped 4 res36: Iterator[List[Int]] = non-empty iterator scala> res36.toList res37: List[List[Int]] = List(List(1, 2, 3, 4), List(5, 6, 7, 8), List(9, 10, 11, 12), List(13, 14, 15, 16), List(17, 18, 19, 20)) -
oxbowlakes created this gist
Feb 20, 2012 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,26 @@ scala> (1 to 20).toList res1: List[Int] = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20) //Simple side effects scala> res1 take 3 foreach (i => println(i)) 1 2 3 scala> res1 take 3 foreach println 1 2 3 //String representation scala> (res1 take 3).toString res9: String = List(1, 2, 3) scala> (res1 take 3).mkString res10: String = 123 scala> (res1 take 3).mkString(", ") res11: String = 1, 2, 3 scala> (res1 take 3).mkString("[", ", ", "]") res12: String = [1, 2, 3]