On Wed, Oct 29, 2008 at 2:29 PM, samppi <[EMAIL PROTECTED]> wrote:
>
> Is there a way to test an object if it's a certain kind of struct?
>
>  (defstruct person :name :age)
>  (def president (struct person "Sam" 30))
>  (struct? person president) ; true

Hi,

Defstruct doesn't define a new type in the OO sense. You can test for
presence of keys, e.g.

(every? #{:name :age} (keys president))

will return true, because 'president' has both :name and :age keys.
But other structures might also have these keys, so this is "duck
typing" at best.

Others have suggested using metadata to "tag" struct values with type
information -- that might be an option you prefer over
key-comparision.

Best,
Graham

>
> Thanks in advance.
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to [email protected]
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to