and the non-reflective version which also fixes the typos and the inefficient transform from keyword -> symbol.

(def ^:private day->int
{:MONDAY 2 :TUESDAY 3 :WEDNESDAY 4 :THURSDAY 5 :FRIDAY 6 :SATURDAY 7 :SUNDAY 1})

(defn is-today?
([s ^java.util.GregorianCalendar instant]
  (= (.get instant Calendar/DAY_OF_WEEK)
      ((keyword s) day->int)))
([s]
  (is-today? s (Calendar/getInstance)))
([]
 (let [inst (Calendar/getInstance)
       int-id (.get inst Calendar/DAY_OF_WEEK)]
  (-> (some (fn [[k v]] (when (= v int-id) k)) day->int)
    name
    symbol))) )

(is-today? (is-today?))
=> true

Jim



On 14/08/13 17:46, Jim - FooBar(); wrote:
On 14/08/13 16:45, Daniel Meneses Báez wrote:
(defn is [s instant]
        (= (.get instant Calendar/DAY_OF_WEEK)
           (. Calendar s)))

(def ^:private day->int
{:MONDAY 2 :TUESDAY 3 :WEDNESDAY 4 :THURSDAY 5 :FRIDAY 6 :SATURDAY 7 :SUNDAY 1})


(defn is-today?
([s instant]
  (= (.get instant Calendar/DAY_OF_WEEK)
      ((keyword s) day->int)))
([s]
  (is s (Calendar/getInstance)))
([]
 (let [int-id (.get (Calendar/getInstance) Calendar/DAY_OF_WEEK)]
  (->> (some (fn [[k v]] (when (= v int-id) k)) day->int)
    str
    (drop 1)
    (apply str)
    symbol))) )

(is-today? 'WEDNESDAY)
=> true

(is-today? MONDAY)
=> false

(is-today?)
=> WEDNESDAY

Jim

--
--
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/groups/opt_out.

Reply via email to