Created
October 7, 2011 13:15
-
-
Save jamie-allen/1270249 to your computer and use it in GitHub Desktop.
for comprehensions
This file contains 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 characters
scala> Map("0110529461001" -> Set("0010ddecf7", "0010da6be5"), "0110519163601" -> Set("0010edc96f"), "0110513382403" -> Set("0010edcaee"), "0110519771404" -> Set("0010ddee12")) | |
res0: scala.collection.immutable.Map[java.lang.String,scala.collection.immutable.Set[java.lang.String]] = Map(0110529461001 -> Set(0010ddecf7, 0010da6be5), 0110519163601 -> Set(0010edc96f), 0110513382403 -> Set(0010edcaee), 0110519771404 -> Set(0010ddee12)) | |
scala> Map("0010da6be5" -> Set("!|", "!("), "0010ddecf7" -> Set( "!_"), "0010ddee12" -> Set( "!&"), "0010edcaee" -> Set( "|&"), "0010edc96f" -> Set( "!|", "!&", "|_")) | |
res1: scala.collection.immutable.Map[java.lang.String,scala.collection.immutable.Set[java.lang.String]] = Map(0010ddee12 -> Set(!&), 0010edcaee -> Set(|&), 0010da6be5 -> Set(!|, !(), 0010edc96f -> Set(!|, !&, |_), 0010ddecf7 -> Set(!_)) | |
scala> Map("!&" -> Set("91", "32859"), "!I" -> Set("60", "32838", "61", "88", "63", "32856", "62", "58", "32807", "32802", "145149", "40", "32803", "1", "32808", "59", "39", "34", "35", "9", "149"), "!_" -> Set("60", "259", "61", "261", "63", "32838", "32", "260", "62", "32800", "11", "58", "32807", "32802", "33", "32801", "40", "32803", "1", "32808", "59", "39"), "!(" -> Set("259", "261", "260")) | |
res2: scala.collection.immutable.Map[java.lang.String,scala.collection.immutable.Set[java.lang.String]] = Map(!& -> Set(91, 32859), !I -> Set(34, 62, 88, 40, 145149, 9, 61, 35, 59, 32838, 1, 39, 60, 58, 32856, 149, 32802, 32807, 63, 32808, 32803), !_ -> Set(62, 32800, 40, 11, 33, 61, 59, 32801, 259, 32838, 32, 1, 39, 60, 58, 260, 32802, 32807, 261, 63, 32808, 32803), !( -> Set(259, 261, 260)) | |
scala> Map("32800" -> Set("12046", "18959", "12040", "12045", "10398", "12055", "12153", "9544", "10041", "4330", "13667", "6910", "6085", "11554", "12134", "4105", "4580", "7915", "18863", "5964", "4553", "11855", "4250", "12049", "12044", "13575", "4164", "10959", "12030", "13745", "7316", "12020", "15128", "10067", "8282", "5011", "9201", "4293", "10043", "12416", "8285", "12800", "4121", "6014", "10001", "12393", "18809", "12023", "4702", "12994", "18592", "12131", "4287", "10042", "15576", "15066", "4288", "4241", "4257", "18662", "13229", "16578", "18975", "7331", "9550", "16852", "9237", "9236", "12130", "8841", "6884", "17512", "10045", "10040", "4100", "11911", "4289", "16116", "10008", "12051", "4730", "13751", "9472", "8699", "12850", "15817", "10391", "10935", "11823", "6127", "12027", "15765", "4290", "4485", "4291", "12136", "11684", "4460", "19602")) | |
res3: scala.collection.immutable.Map[java.lang.String,scala.collection.immutable.Set[java.lang.String]] = Map(32800 -> Set(12416, 4290, 4330, 12046, 8282, 17512, 6884, 12800, 11911, 10042, 13745, 8699, 4241, 12020, 12136, 9237, 6127, 4288, 16578, 10067, 18809, 9201, 10045, 10391, 11823, 4460, 18863, 19602, 18662, 10001, 12049, 18959, 8841, 18975, 10043, 4485, 4121, 4164, 4291, 12027, 9544, 10398, 15066, 4287, 12055, 4105, 4702, 12130, 12393, 15765, 12051, 12044, 12134, 10935, 12994, 13667, 11855, 10040, 7316, 13229, 8285, 18592, 4250, 4257, 15817, 9550, 11684, 12153, 11554, 7331, 12023, 5964, 12850, 10959, 6085, 12040, 13575, 12045, 15128, 6014, 12131, 9472, 10041, 5011, 4293, 16852, 15576, 7915, 10008, 4100, 4730, 13751, 12030, 9236, 6910, 4289, 4553, 4580, 16116)) | |
scala> for { | |
| m <- res0.values.flatten | |
| rc <- res1.getOrElse(m, Set()) | |
| bsg <- res2.getOrElse(rc, Set()) | |
| src <- res3.getOrElse(bsg, Set()) | |
| } yield (m, src) | |
res5: Iterable[(java.lang.String, java.lang.String)] = List((0010ddecf7,10959), (0010ddecf7,15066), (0010ddecf7,7915), (0010ddecf7,6014), (0010ddecf7,13575), (0010ddecf7,4288), (0010ddecf7,19602), (0010ddecf7,11823), (0010ddecf7,18809), (0010ddecf7,12046), (0010ddecf7,4702), (0010ddecf7,18975), (0010ddecf7,15128), (0010ddecf7,4460), (0010ddecf7,13745), (0010ddecf7,15576), (0010ddecf7,10067), (0010ddecf7,4257), (0010ddecf7,8841), (0010ddecf7,9544), (0010ddecf7,12416), (0010ddecf7,12027), (0010ddecf7,11911), (0010ddecf7,4293), (0010ddecf7,12134), (0010ddecf7,10045), (0010ddecf7,4105), (0010ddecf7,11855), (0010ddecf7,4289), (0010ddecf7,8285), (0010ddecf7,7316), (0010ddecf7,11554), (0010ddecf7,4291), (0010ddecf7,13751), (0010ddecf7,10398), (0010ddecf7,12044), (0010ddecf7,4287), (0010ddecf7,... | |
scala> println(res5) | |
List((0010ddecf7,10959), (0010ddecf7,15066), (0010ddecf7,7915), (0010ddecf7,6014), (0010ddecf7,13575), (0010ddecf7,4288), (0010ddecf7,19602), (0010ddecf7,11823), (0010ddecf7,18809), (0010ddecf7,12046), (0010ddecf7,4702), (0010ddecf7,18975), (0010ddecf7,15128), (0010ddecf7,4460), (0010ddecf7,13745), (0010ddecf7,15576), (0010ddecf7,10067), (0010ddecf7,4257), (0010ddecf7,8841), (0010ddecf7,9544), (0010ddecf7,12416), (0010ddecf7,12027), (0010ddecf7,11911), (0010ddecf7,4293), (0010ddecf7,12134), (0010ddecf7,10045), (0010ddecf7,4105), (0010ddecf7,11855), (0010ddecf7,4289), (0010ddecf7,8285), (0010ddecf7,7316), (0010ddecf7,11554), (0010ddecf7,4291), (0010ddecf7,13751), (0010ddecf7,10398), (0010ddecf7,12044), (0010ddecf7,4287), (0010ddecf7,7331), (0010ddecf7,8699), (0010ddecf7,4241), (0010ddecf7,9550), (0010ddecf7,16116), (0010ddecf7,12051), (0010ddecf7,6884), (0010ddecf7,10040), (0010ddecf7,11684), (0010ddecf7,6127), (0010ddecf7,6910), (0010ddecf7,10043), (0010ddecf7,10935), (0010ddecf7,15817), (0010ddecf7,12023), (0010ddecf7,17512), (0010ddecf7,18959), (0010ddecf7,4580), (0010ddecf7,12030), (0010ddecf7,9472), (0010ddecf7,12045), (0010ddecf7,4730), (0010ddecf7,4100), (0010ddecf7,10008), (0010ddecf7,15765), (0010ddecf7,4553), (0010ddecf7,18662), (0010ddecf7,12850), (0010ddecf7,12994), (0010ddecf7,12393), (0010ddecf7,13667), (0010ddecf7,18863), (0010ddecf7,5011), (0010ddecf7,10042), (0010ddecf7,10391), (0010ddecf7,4250), (0010ddecf7,12020), (0010ddecf7,12131), (0010ddecf7,4164), (0010ddecf7,10001), (0010ddecf7,6085), (0010ddecf7,12055), (0010ddecf7,4121), (0010ddecf7,4485), (0010ddecf7,12800), (0010ddecf7,9237), (0010ddecf7,10041), (0010ddecf7,9236), (0010ddecf7,4290), (0010ddecf7,16852), (0010ddecf7,12153), (0010ddecf7,5964), (0010ddecf7,12130), (0010ddecf7,4330), (0010ddecf7,12040), (0010ddecf7,18592), (0010ddecf7,9201), (0010ddecf7,12049), (0010ddecf7,13229), (0010ddecf7,12136), (0010ddecf7,16578), (0010ddecf7,8282)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment