diff --git a/src/predicates.clj b/src/predicates.clj index 158b1ea..b4b94c2 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] - :-) + #(< % n)) (defn equal-to [n] - :-) + #(== % n)) (defn set->predicate [a-set] - :-) + #(contains? a-set %)) (defn pred-and [pred1 pred2] - :-) + #(and (pred1 %) (pred2 %))) (defn pred-or [pred1 pred2] - :-) + #(or (pred1 %) (pred2 %))) (defn whitespace? [character] (Character/isWhitespace character)) (defn blank? [string] - :-) + (every? whitespace? string)) -(defn has-award? [book award] - :-) +(defn has-award? [{:keys [awards]} award] + ((set->predicate awards) award)) (defn HAS-ALL-THE-AWARDS? [book awards] - :-) + (every? (set->predicate (:awards book)) awards)) (defn my-some [pred a-seq] - :-) + (first (map pred (filter pred a-seq)))) (defn my-every? [pred a-seq] - :-) + (empty? (filter false? (map pred a-seq)))) (defn prime? [n] - :-) + (my-every? #(not= 0 (mod n %)) (range 2 n))) ;^^