I think this is pretty useful, but I'm a noob and don't know better :)
I found myself trying to use atoms and refs to start with rather than
taking a functional approach, maybe something like this is good in the
standard lib to emphasize a functional approach? Or maybe it exists
and I don't know it????

(defmacro conj-when [pred new & coll]
`(let [test# ~pred]
         (if test#
                 (conj [EMAIL PROTECTED] ~new)
                 [EMAIL PROTECTED])))

and an example ...

(defn- syncPacket [r]
  (let [state (r :state)]
                (conj-when (= state :WINNER) { :WINNER (r :winBall) }
                                (conj-when (or (= state :CONGRATS) (= state 
:START)) {:COUNTDOWN
(r :countDown)}
                                        {
                                                 :CUR_SEC (r :sec)
                                                 :PRIZE (r :prize)
                                                 :JACKPOT (r :jackpot)
                                                 :BUY_INS (count @(r :cards))
                                                 :STATE (subs (str state) 1)
                                                 :MESSAGE (r :message)
                                         }))))


--~--~---------~--~----~------------~-------~--~----~
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
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to