diff --git a/lib/koans/20_comprehensions.ex b/lib/koans/20_comprehensions.ex index 35eeccb..ff12018 100644 --- a/lib/koans/20_comprehensions.ex +++ b/lib/koans/20_comprehensions.ex @@ -1,33 +1,33 @@ -defmodule Comprehensions do - use Koans - - @intro "A comprehension is made of three parts: generators, filters, and collectibles. We will look at how these interact with eachother" - - koan "The generator, `n <- [1, 2, 3, 4]`, is providing the values for our comprehension" do - assert (for n <- [1, 2, 3, 4], do: n * n) == ___ - end - - koan "Any enumerable can be a generator" do - assert (for n <- 1..4, do: n * n) == ___ - end - - koan "A generator specifies how to extract values from a collection" do - collection = [["Hello","World"], ["Apple", "Pie"]] - assert (for [a, b] <- collection, do: "#{a} #{b}") == ___ - end - - koan "You can use multiple generators at once" do - assert (for x <- ["little", "big"], y <- ["dogs", "cats"], do: "#{x} #{y}") == ___ - end - - koan "Use a filter to reduce your work" do - assert (for n <- [1, 2, 3, 4, 5, 6], n > 3, do: n) == ___ - end - - koan "Add the result of a comprehension to an existing collection" do - collection = ["Apple Pie"] - collection = for x <- ["Pecan", "Pumpkin"], into: collection, do: "#{x} Pie" - assert collection == ___ - end - -end +defmodule Comprehensions do + use Koans + + @intro "A comprehension is made of three parts: generators, filters, and collectibles. We will look at how these interact with eachother" + + koan "The generator, `n <- [1, 2, 3, 4]`, is providing the values for our comprehension" do + assert (for n <- [1, 2, 3, 4], do: n * n) == ___ + end + + koan "Any enumerable can be a generator" do + assert (for n <- 1..4, do: n * n) == ___ + end + + koan "A generator specifies how to extract values from a collection" do + collection = [["Hello","World"], ["Apple", "Pie"]] + assert (for [a, b] <- collection, do: "#{a} #{b}") == ___ + end + + koan "You can use multiple generators at once" do + assert (for x <- ["little", "big"], y <- ["dogs", "cats"], do: "#{x} #{y}") == ___ + end + + koan "Use a filter to reduce your work" do + assert (for n <- [1, 2, 3, 4, 5, 6], n > 3, do: n) == ___ + end + + koan "Add the result of a comprehension to an existing collection" do + collection = ["Apple Pie"] + collection = for x <- ["Pecan", "Pumpkin"], into: collection, do: "#{x} Pie" + assert collection == ___ + end + +end