aaaa ok this is clearer now! I actually like what you're proposing just
not in the form you're proposing it...since the record will already
create 2 constructors in the underlying class, having essentially a 3rd
sounds a bit crowded...minimally, you want (and I agree) the ability to
optionally attach validator functions to some record fields. I have to
admit that sounds nice...we can already do that with atoms why can't we
do that with regular vars?
Jim
On 04/08/12 22:06, Warren Lynn wrote:
I am not sure I follow...If you're just creating a new record
yourself,
you can pass whatever you want to the constructor...no need for
'setting' whatsoever...On the other hand if you're consuming an
object
then you might need to 'set' some fields before it is useful
(where doto
comes into play).
I have a feeling we may not be talking about the same thing here. What
I want is constructors, not a "setter". My understanding is, in
Clojure there is no constructors for record other than simply passing
in the field values (directly or in a map). And hence I am proposing
to have some constructors similar to other OO languages. Having
constructors have nothing to do with immutability.
Here is a maybe silly example, but hope it communicates what I want. I
want something like this:
(defrecord Book
[age-min age-max]
(make-record "Make a book for an age group" [age-min age-max]
(when (> age-min age-max)
(throw (IllegalArgumentException. "Minimum age is greater than
maximum age.")))
(Book. age-min age-max)))
(make-record Book 6 5) => IllegalArgumentException
(make-record Book 3 5) => Book#{:age-min 3 :age-max 5}
BTW, this not to argue with you. But I sometimes I feel some people
have some kind of extreme opposition against anything associated with
OO. I just think people designing and using OO languages are no all
that stupid.
--
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