Re: extracting variables from an expression
- To: mathgroup at smc.vnet.net
- Subject: [mg44135] Re: [mg44111] extracting variables from an expression
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Fri, 24 Oct 2003 04:24:05 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
You are quite right. I forgot about that. The function you need is Union. The correct code is: Vars[expr_] := Union[Cases[expr, _Symbol?( !MemberQ[Attributes[#1], Protected] & ), Infinity]] expr1 = a || b || c || (a && d); Vars[expr1] {a, b, c, d} On Friday, October 24, 2003, at 02:05 AM, Peter Schinko wrote: > Thank you very much for your help! The function works properly, but > there is > still one minor problem: the function isolates every single occurance > of a > variable, so for example: > > expr1 = a || b || c || (a && d) > Vars[expr1] > will return > {a, b, c, a, d} > > I need to remove all variables from the list that appear two times or > more, > so that I can construct a table with true and false to evaluate the > expression. I have tried to find such function, but I could not find > anything in "List Manipulation". Is there an easy way to do this > myself, or > is there such a function built in? > > Thank you very much for your help! > Kind regards > Peter Schinko > > University of Linz, Austria > > www.pkos17.at > > > Andrzej Kozlowski Yokohama, Japan http://www.mimuw.edu.pl/~akoz/