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

Reply via email to