Re: Q : Lists as sets.
- To: mathgroup at smc.vnet.net
- Subject: [mg7854] Re: [mg7810] Q : Lists as sets.
- From: "C. Woll" <carlw at u.washington.edu>
- Date: Thu, 17 Jul 1997 02:01:36 -0400
- Sender: owner-wri-mathgroup at wolfram.com
On Sat, 12 Jul 1997, Gadi Oron wrote:
> Hi there,
>
> I want to use a list as a mathematical set. How can I do that? (Nothing in
> the MMA book).
>
> I found one (not elegant) way to do it : Allways do set=Union[list] but
> that is really ugly.
>
> Any ideas?
>
Hi Gadi,
Here is one technique, with f being the head of the set.
b:a_f:=Sort[Unevaluated[b]]/;!OrderedQ[Unevaluated[b]]
b:a_f:=Union[Unevaluated[b]]/;(Signature[Unevaluated[b]]==0)
You need the Unevaluated wrapper to prevent infinite recursion. Note that
this definition is much faster than the following somewhat more intuitive
one.
SetAttributes[f,{Orderless,Flat,OneIdentity}]
f[a_,a_]:=f[a]
Carl Woll