Re: List to infix
- To: mathgroup at smc.vnet.net
- Subject: [mg113059] Re: List to infix
- From: Patrick Scheibe <pscheibe at trm.uni-leipzig.de>
- Date: Tue, 12 Oct 2010 04:27:39 -0400 (EDT)
Hi,
what about making a string which can then be used with ToExpression?
MyEvaluate[l_List] :=
ToExpression@StringJoin@Riffle[ToString /@ l, "~"];
MyEvaluate[{1, Plus, 3, Times, 5, Plus, 5}]
Cheers
Patrick
On Mon, 2010-10-11 at 05:16 -0400, Hugo Touchette wrote:
> Hi,
>
> A problem about infix notation. In simple terms, I want to transform
> the list
>
> {1, Plus, 3, Times, 5, Plus, 5}
>
> into the infix form
>
> 1~Plus~3~Times~5~Plus~5
>
> to get a numerical result (here 25). Is there an easy way to do this?
> The lists I'm working with are actually much longer, so I want
> something efficient.
>
> I've tried using Infix[mylist,"~"], but the ~ there is a string, not
> the infix operator. In the end, I simply wrote
>
> ListOperation2[l_] := Module[{res, i},
> res = l[[1]];
> Do[
> res = res~l[[i]]~l[[i + 1]]
> , {i, 2, Length[l], 2}];
> res
> ]
>
> This works, but I thought there might be a more efficient way to do
> things.
>
> Thanks in advance for any help.
>
> oguh
>