Re: Intersection[...,SameTest] ?
- To: mathgroup at smc.vnet.net
- Subject: [mg33071] Re: Intersection[...,SameTest] ?
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Fri, 1 Mar 2002 06:51:17 -0500 (EST)
- Organization: Universitaet Leipzig
- References: <a5htcj$hsk$1@smc.vnet.net>
- Reply-to: kuska at informatik.uni-leipzig.de
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
a) what is not clear in
"Intersection[list1,list2,..] gives a sorted
list of the elements common to all the listi."
> 1. It is not clear from the manual (book or help browser), what this command
> is supposed to return.
from the manual I would assume a sorted list of the elements common to
all
arguments ?
> 2. It simply does not work:
>
> In[83]:=
> a={1,2,3,4};
> b={2,4,7,8};
> Intersection[a,b,SameTest->(#1==2*#2&)]
A intersection can't be unsymmetric and
Intersection[a,b]===Intersection[b,a]
and this is violated by your SameTest.
a = {1, 2, 3, 4};
b = {2, 4, 7, 8};
Intersection[2*a, b]/2
gives what you want as well as a symmetric test
a = {1, 2, 3, 4};
b = {2, 4, 7, 8};
Intersection[a, b,
SameTest -> ((If[#2 < #1, #1 === 2*#2, #2 === 2*#1]) &)]
>
> Out[83]=
> {1}
>
> or more sophisticated:
>
> In[85]:=
> a={1,2,3,4};
> b={2,4,7,8};
> Intersection[a,b,SameTest->
> ((Print[#1,"=?=",#2]||True)
> &==2*#2
> &&(Print[True]||True)&)
> ]
>
> 2 =?= 1
> True
> 3 =?= 1
> 4 =?= 3
> 2 =?= 1
> True
> 4 =?= 3
> 4 =?= 4
>
> Out[85]=
> {1}
>
> which does not seem to enumerate all pairs.
That's why it return a *sorted* list of the common elements.
>
> What idea stands behind this function? what is supposed to do?
"Intersection[list1,list2,..] gives a sorted
list of the elements common to all the listi."
Regards
Jens