From 59a340379497a10b143adec1c98dc97bf96546f6 Mon Sep 17 00:00:00 2001 From: Ville Date: Wed, 23 Aug 2017 16:12:25 +0300 Subject: [PATCH 1/2] Predicate exercises --- src/predicates.clj | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/predicates.clj b/src/predicates.clj index 158b1ea..a4e6ca2 100644 --- a/src/predicates.clj +++ b/src/predicates.clj @@ -1,41 +1,41 @@ (ns predicates) (defn sum-f [f g x] - :-) + (+ (f x) (g x))) (defn less-than [n] - :-) + (fn [k] (< k n))) (defn equal-to [n] - :-) + (fn [k] (== k n))) -(defn set->predicate [a-set] - :-) +(defn set->predicate [a-set] (fn [x] (if (contains? a-set x) true false))) -(defn pred-and [pred1 pred2] - :-) +(defn pred-and [pred1 pred2] (fn [x] (and (pred1 x) (pred2 x)))) -(defn pred-or [pred1 pred2] - :-) +(defn pred-or [pred1 pred2] (fn [x] (or (pred1 x) (pred2 x)))) (defn whitespace? [character] (Character/isWhitespace character)) -(defn blank? [string] - :-) +(defn blank? [string] (every? whitespace? string)) -(defn has-award? [book award] - :-) +(defn has-award? [book award] (contains? (:awards book) award)) -(defn HAS-ALL-THE-AWARDS? [book awards] - :-) +(defn HAS-ALL-THE-AWARDS? [book awards] (every? (fn [x] (has-award? book x)) awards)) (defn my-some [pred a-seq] - :-) + (let [filtered-map (filter (fn [x] (boolean x)) (map pred a-seq))] + (if (< 0 (count filtered-map)) + (first filtered-map) + false))) (defn my-every? [pred a-seq] - :-) + (let [filtered-map (filter (fn [x] (boolean x)) (map pred a-seq))] + (if (== (count filtered-map) (count a-seq)) true false))) (defn prime? [n] - :-) + (let + [pred (fn [x] (== (rem n x) 0))] + (not (some pred (range 2 n))))) ;^^ From 3f84cb8b2deb1addae9fce204f0df7bc23896b23 Mon Sep 17 00:00:00 2001 From: Ville Haapavaara Date: Wed, 23 Aug 2017 16:17:47 +0300 Subject: [PATCH 2/2] Change lein2 to lein --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 455f3c0..45c29f6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: clojure -lein: lein2 -script: lein2 midje :config .midje-grading-config.clj +lein: lein +script: lein midje :config .midje-grading-config.clj jdk: - openjdk7 notifications: