Skip to content

Instantly share code, notes, and snippets.

@noahlz
Last active August 29, 2015 13:58
Show Gist options
  • Save noahlz/10024365 to your computer and use it in GitHub Desktop.
Save noahlz/10024365 to your computer and use it in GitHub Desktop.
def divBy3(x: Int) = x % 3 == 0
// divBy3: (x: Int)Boolean
def divBy5(x: Int) = x % 5 == 0
// divBy5: (x: Int)Boolean
def divByAll(fns: List[(Int => Boolean)])(x: Int) = fns.foldLeft(true)((modZero, fn: (Int => Boolean)) => modZero && fn(x))
// divByAll: (fns: List[Int => Boolean])(x: Int)Boolean
val divBy3And5 = divByAll(List(divBy3,divBy5)) _
val to100 = for(x <- 1 to 100) yield (x, divBy3And5(x))
/*
Vector((1,false), (2,false), (3,false), (4,false), (5,false), (6,false), (7,false), (8,false), (9,false), (10,false), (11,false), (12,false), (13,false), (14,false), (15,true), (16,false), (17,false), (18,false), (19,false), (20,false), (21,false), (22,false), (23,false), (24,false), (25,false), (26,false), (27,false), (28,false), (29,false), (30,true), (31,false), (32,false), (33,false), (34,false), (35,false), (36,false), (37,false), (38,false), (39,false), (40,false), (41,false), (42,false), (43,false), (44,false), (45,true), (46,false), (47,false), (48,false), (49,false), (50,false), (51,false), (52,false), (53,false), (54,false), (55,false), (56,false), (57,false), (58,false), (59,false), (60,true), (61,false), (62,false), (63,false), (64,false), (65,false), (66,false), (67,false), (68,false), (69,false), (70,false), (71,false), (72,false), (73,false), (74,false), (75,true), (76,false), (77,false), (78,false), (79,false), (80,false), (81,false), (82,false), (83,false), (84,false), (85,false), (86,false), (87,false), (88,false), (89,false), (90,true), (91,false), (92,false), (93,false), (94,false), (95,false), (96,false), (97,false), (98,false), (99,false), (100,false))
*/
to100.filter(_._2)
// scala.collection.immutable.IndexedSeq[(Int, Boolean)] = Vector((15,true), (30,true), (45,true), (60,true), (75,true), (90,true))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment