From 217b0ace5657bb2456a432178ba23969b3a193d7 Mon Sep 17 00:00:00 2001 From: Kenneth Kostresevic Date: Wed, 15 Dec 2021 14:45:14 +0100 Subject: [PATCH] Solve higher order functions --- src/koans/09_higher_order_functions.clj | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/koans/09_higher_order_functions.clj b/src/koans/09_higher_order_functions.clj index 8b7fd3c..536b64f 100644 --- a/src/koans/09_higher_order_functions.clj +++ b/src/koans/09_higher_order_functions.clj @@ -3,33 +3,33 @@ (meditations "The map function relates a sequence to another" - (= [__ __ __] (map (fn [x] (* 4 x)) [1 2 3])) + (= [4 8 12] (map (fn [x] (* 4 x)) [1 2 3])) "You may create that mapping" - (= [1 4 9 16 25] (map (fn [x] __) [1 2 3 4 5])) + (= [1 4 9 16 25] (map (fn [x] (* x x)) [1 2 3 4 5])) "Or use the names of existing functions" - (= __ (map nil? [:a :b nil :c :d])) + (= [false false true false false] (map nil? [:a :b nil :c :d])) "A filter can be strong" - (= __ (filter (fn [x] false) '(:anything :goes :here))) + (= '() (filter (fn [x] false) '(:anything :goes :here))) "Or very weak" - (= __ (filter (fn [x] true) '(:anything :goes :here))) + (= '(:anything :goes :here) (filter (fn [x] true) '(:anything :goes :here))) "Or somewhere in between" - (= [10 20 30] (filter (fn [x] __) [10 20 30 40 50 60 70 80])) + (= [10 20 30] (filter (fn [x] (<= x 30)) [10 20 30 40 50 60 70 80])) "Maps and filters may be combined" - (= [10 20 30] (map (fn [x] __) (filter (fn [x] __) [1 2 3 4 5 6 7 8]))) + (= [10 20 30] (map (fn [x] (* x 10)) (filter (fn [x] (<= x 3)) [1 2 3 4 5 6 7 8]))) "Reducing can increase the result" - (= __ (reduce (fn [a b] (* a b)) [1 2 3 4])) + (= 24 (reduce (fn [a b] (* a b)) [1 2 3 4])) "You can start somewhere else" - (= 2400 (reduce (fn [a b] (* a b)) __ [1 2 3 4])) + (= 2400 (reduce (fn [a b] (* a b)) 100 [1 2 3 4])) "Numbers are not the only things one can reduce" (= "longest" (reduce (fn [a b] - (if (< __ __) b a)) + (if (< (count a) (count b)) b a)) ["which" "word" "is" "longest"])))