Ok, then I understand why it didn't work, but that means that the
struct (that is sent by the add-message function) is put in a sequence
somewhere on the way to being validated. Is this right, and where does
this happen?


;All the relevant code

(defstruct message :sender :text)

(def validate-message-list
  (partial every? #(and (:sender %) (:text %))))

(def messages (ref [] :validator validate-message-list))

(defn add-message [msg]
  (dosync (alter messages conj msg)))

(add-message (struct message "mm" "first message"))





On Jun 23, 12:58 pm, Stuart Halloway <stuart.hallo...@gmail.com>
wrote:
> Hi Michele,
>
> Pass a sequence of maps, not just a map:
>
> (every? #(:x %) [{:x "s"}])
> -> true
>
> Cheers,
> Stu
>
>
>
> > In the book "Programming Clojure" (p2_0, pdf, page 185) "Adding
> > Validation to Refs" there is this code:
>
> > (def validate-message-list (partial every? #(and (:sender %) (:text
> > %))))
>
> > This works fine as a validator, but when I try the code directly - not
> > as a validator - it returns false. I also tested with a simple "if" to
> > see the difference.
>
> > (every? #(:x %) {:x "s"})
> > -> false
>
> > (if (#(:x %) {:x "s"}) "TRUE" "FALSE")
> > -> "TRUE"
>
> > What do I not understand?
>
> > --
> > 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 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