On Wed, 2009-06-24 at 11:53 -0400, Michael Reid wrote:

> >
> > (if (empty? keys_generated_by_macro)
> >   (defn ...)
> >   (let [my_struct ...] ....))
> >
> > Resulting in code duplication: less readable, harder to modify, error
> > prone.
> > )
> >
> You could do:
> 
> `(let [my-struct (if (empty? keys) {} (create-struct ~...@keys))]
>   (defn ...))
> 
> Right?
> 

I am not sure:
(struct {}) throws an exception.

I could do a multimethod like (in pseudo syntax for readbility):

my_struct {} = (hash-map)
my_struct a_struct &keys = (apply struct a_struct keys)

But it looks a bit strange and complicated.

On the other hand, most languages allow empty records.

Best,

Nicolas.



--~--~---------~--~----~------------~-------~--~----~
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