Re: Tally
- To: mathgroup at smc.vnet.net
- Subject: [mg86923] Re: Tally
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Wed, 26 Mar 2008 04:54:21 -0500 (EST)
- Organization: The Open University, Milton Keynes, UK
- References: <fsa5eq$adg$1@smc.vnet.net>
Armen Kocharyan wrote:
> I'm trying the following:
>
>
> *Dlist = {{{0,1},{0,1}},{{1,0},{1,0}},{{1,0},{0,1}},{{0,1},{1,0}}};*
>
> *Tally[Dlist,(#1=== #2) \[Or] *
>
> * (#1[[1]][[1]]=== #2[[1]][[2]] \[And] *
>
> * #1[[1]][[2]]=== #2[[1]][[1]] \[And] *
>
> * #1[[2]][[1]]=== #2[[2]][[2]] \[And] *
>
> * #1[[2]][[2]]=== #2[[2]][[1]] )&]*
>
>
>
> The output is:
>
> *{{{{0,1},{0,1}},1},{{{1,0},{1,0}},1},{{{1,0},{0,1}},2}}*
>
> instead of
>
> *{{{{0,1},{0,1}},2},{{{1,0},{0,1}},2}}*
>
>
>
> If I remove the last member from DList
>
> *Dlist = {{{0,1},{0,1}},{{1,0},{1,0}},{{1,0},{0,1}}};*
>
> then I got a correct answer
>
> *{{{{0,1},{0,1}},2},{{{1,0},{0,1}},1}}.*
>
>
>
> Is anything wrong with my original code?
Although this does not answer your question, writing your expression as
follows should help investigating its behavior (assuming, of course, I
have correctly understood what you try to achieve).
Dlist={{{0,1},{0,1}},{{1,0},{1,0}},{{1,0},{0,1}},{{0,1},{1,0}}};
Tally[Dlist,
((#1 === #2) ||
(#1[[1]] === Reverse@#2[[1]] &&
#1[[2]] === Reverse@#2[[2]]) &)]
==> {{{{0,1},{0,1}},1},{{{1,0},{1,0}},1},{{{1,0},{0,1}},2}}
Best regards,
--
Jean-Marc