Use a cond rather than nesting ifs. Otherwise looks good. On Saturday, December 29, 2012 7:35:38 AM UTC-5, Sean Chalmers wrote: > > Greetings all! > > I'm just starting out in the so far wonderful world of Clojure and to help > me get started I had a crack at one of my favourites, the FizzBuzz program. > For anyone that isn't familiar with FizzBuzz, it is designed to count from > 1 to N and take the following actions when certain conditions are met: > > - When the remainder of i divided by 3 is 0 print "Fizz" > - When the remainder of i divided by 5 is 0 print "Buzz" > - When both the former are true of i print "FizzBuzz" > > I crafted the following as a solution and I would really appreciate some > more experienced Clojurians casting their eye over it and letting me know > if what I've done is in the style and spirit of Clojure. Also this is my > first functional language so any feedback on that would be awesome too. :) > > I'm aware it's only a teeeeeeeensy piece of code so not terribly > indicative of the hilarity that might ensue on a larger project but all the > same. Enough of my blathering here is the meaty bit: > > (defn zero-remainder? [x y] > (zero? (rem x y))) > > (defn fizzy [x] > (let [fizz (zero-remainder? x 3) buzz (zero-remainder? x 5)] > (if (and fizz buzz) > (println "FizzBuzz: " x) > (if buzz > (println "Buzz: " x) > (if fizz > (println "Fizz: " x)))))) > > (doseq [x (range 1 25)] > (fizzy x)) >
-- 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