Re: Help with concatenating a list with &&
- To: mathgroup at smc.vnet.net
- Subject: [mg102217] Re: [mg102153] Help with concatenating a list with &&
- From: Tomas Garza <tgarza10 at msn.com>
- Date: Sat, 1 Aug 2009 04:03:01 -0400 (EDT)
- References: <200907310952.FAA19208@smc.vnet.net>
Hello, Jane:
Not being an expert, I find it very useful to peruse the on-line documentation center - when in doubt.
I found that BooleanConvert may be used to answer your query
In[1]:= ls={ex1,ex2,ex3,ex4}
Out[1]= {ex1,ex2,ex3,ex4}
In[2]:= BooleanConvert[Equivalent[Sequence@@ls]]
Out[2]= (ex1&&ex2&&ex3&&ex4)||(!ex1&&!ex2&&!ex3&&!ex4)
Taking the first part of the output will give what you are after:
In[3]:= %[[1]]
Out[3]= ex1&&ex2&&ex3&&ex4
Cheers,
Tomas
> Date: Fri, 31 Jul 2009 05:52:48 -0400
> From: janemkiwi at gmail.com
> Subject: [mg102153] Help with concatenating a list with &&
> To: mathgroup at smc.vnet.net
>
> Can anyone help me make better use of mathematica's built in commands?
>
> My problem is to take the list of expressions ls:
>
> ls={ex1, ex2, ex3, ex4}
>
> and connect them to obtain
>
> ex1 && ex2 && ex3 && ex4
>
>
> I thought I should be able to use
>
> && @@ ls
>
> or equivalently Apply[&&, ls]
>
> However this fails. I ended up using the very awkward
>
> conditions = ls[[1]] && ls[[2]]
> Do[conds = conds && ls[[i]], {i, 3, Length[ls]}]
>
> which works but feels like just bludgeoning the problem
>
> Does anyone know of a more elegant way to work this?
>
> Thanks,
> Jane.
>