From f229ce65ec88c6ef674863458d9d0b924a77378a Mon Sep 17 00:00:00 2001 From: "Luis P. Mendes" Date: Thu, 14 Dec 2017 22:58:49 +0000 Subject: [PATCH] Predicates done! --- .travis.yml | 4 ++-- project.clj | 2 +- src/predicates.clj | 26 ++++++++++++++------------ 3 files changed, 17 insertions(+), 15 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: diff --git a/project.clj b/project.clj index 996527e..55f8174 100644 --- a/project.clj +++ b/project.clj @@ -1,4 +1,4 @@ (defproject predicates "1.0.0-SNAPSHOT" - :dependencies [[org.clojure/clojure "1.5.1"] + :dependencies [[org.clojure/clojure "1.8.0"] [iloveponies.tests/predicates "0.1.0-SNAPSHOT"]] :profiles {:dev {:plugins [[lein-midje "3.1.1"]]}}) diff --git a/src/predicates.clj b/src/predicates.clj index 158b1ea..1ac273e 100644 --- a/src/predicates.clj +++ b/src/predicates.clj @@ -1,41 +1,43 @@ (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] - :-) + (fn [x] (contains? a-set x))) (defn pred-and [pred1 pred2] - :-) + (fn [x] (and (pred1 x) (pred2 x)))) (defn pred-or [pred1 pred2] - :-) + (fn [x] (or (pred1 x) (pred2 x)))) (defn whitespace? [character] (Character/isWhitespace character)) (defn blank? [string] - :-) + (every? whitespace? string)) (defn has-award? [book award] - :-) + (contains? (:awards book) award)) (defn HAS-ALL-THE-AWARDS? [book awards] - :-) + (every? (fn [aw] (has-award? book aw)) awards)) (defn my-some [pred a-seq] - :-) + (let [s (map pred a-seq)] + (first (filter (complement false?) s)))) (defn my-every? [pred a-seq] - :-) + (empty? (filter false? (map pred a-seq)))) (defn prime? [n] - :-) + (let [rests (map (fn [divisor] (mod n divisor)) (range 2 n))] + (not (some zero? rests)))) ;^^