On Wed, Jun 24, 2009 at 11:41 AM, Nicolas Oury<[email protected]> wrote:
>
> This is useful when you write a macro that generates a structure with a
> known set of fields at macro-expansion time. But sometimes this
> known set of fields will be empty.
>
> ( Imagine a macro allowing to shortly write some kind of records with
> some attributes modified/added/ removed by the macro.
> Internally, your macro expand to :
>
> `(let [my_struct (create_struct ~...@keys_generated_by_my_macro)]
> in ....
> (defn ....)), for example.
>
> if create_struct fails with no keys, then you have to write
>
> (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?
--
/mike.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
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
-~----------~----~----~----~------~----~------~--~---