Hi, I am not an expert :)
I haven't heard of this repo or even understand what the exercises are. Nonetheless, based on what you wrote, some simple changes (to possibly make it more idiomatic?), (< x 0) use (neg? x) (if (= (mod n divisor)0) > true > false)) use (= (mod n divisor) 0) ... `=` returns a boolean value. (defn abs [x] I don't understand what the point of this function is. If one can use a built-in function `mod` to test divisibility, why can't one use the Java function `Math/abs` to implement `abs`? (not (teen? age )) `((complement teen?) age)` ... I personally find `complement` forms easier to read than `not`. And its better than doing `((comp not teen?) age)` (divides? 5 n ) Maybe it's just me, but it reads like I am checking whether 5 is divisible by n. I rather prefer `(divisible? n d)`. Creating a standalone `divisible-by-5` function is just as easy. Anyway, (defn leap-year? [year] > (cond > (not(divides? 4 year )) false > (not(divides? 100 year)) true > (not(divides? 400 year)) false > :else true > )) It took me a while to mentally verify the logic. I feel the code becomes easier to grok, if you invert the predicates, ie instead of checking for negation of a condition, just check for the condition. (defn leap-year? [x] (cond (divisible? x 400) true (divisible? x 100) false (divisible? x 4) true :else false)) or (defn leap-year? [x] (cond (divisible? x 400) true (and (divisible? x 4) ((complement divisible?) x 100)) true :else false)) Can a year be negative or zero? If not, then maybe a pre-condition check for positive numbers? (defn generic-doublificate [x] ... Without understanding what this function is supposed to do, I can't comment on it. As such, one rarely needs to check if an argument is a list or a vector. In this case maybe a better check would be `sequential?`. Maybe, you were supposed to implement it using multi methods. One method for `number?`, one for `coll?` and a default implementation. The `coll?` implementation handles the cases for empty collection, sequential collection and any other case. That said, what does this method have to do with booleans? On Monday, 31 August 2015 23:59:21 UTC+5:30, r/ Wobben wrote: > Hello, > > I did solve the boolean chapter of the ilovehorses git repo. > My solutions can be found here: > https://github.com/rwobben/i-am-a-horse-in-the-land-of-booleans/blob/master/src/i_am_a_horse_in_the_land_of_booleans.clj > > Any experts who can give me feedback about the solutions so I can learn > from it. > > Roelof > > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.