Re: How to produce variable substitution list?

• To: mathgroup at smc.vnet.net
• Subject: [mg90919] Re: How to produce variable substitution list?
• From: Valeri Astanoff <astanoff at gmail.com>
• Date: Tue, 29 Jul 2008 06:10:27 -0400 (EDT)
• References: <g6mat3\$i19\$1@smc.vnet.net>

```On 29 juil, 07:47, Stoney Ballard <ston... at gmail.com> wrote:
> Is there a straight-forward way to write a function that takes a list
> of symbols that are bound in the calling environment and produce a
> list such as is produced by Solve, like {var1->val1, var2->val2,...}?
>
> Currently, I'm using an expression (not a function) like {Hold[var1]->var=
1, Hold[var2]->var2}, which produces the right result, but it
>
> looks bad to duplicate the symbols. I want something that looks clean,
> like bindings[var1, var2,...].
>
> I know this isn't lisp, and there's no binding environment as such,
> but it would expect this to be doable.
>
> TIA for any suggestions.
>
> =A0- Stoney

Good day,

This is a solution inspired from Roman Maeder's
"Programming in Mathematica":

In[1]:=3D SetAttributes[myRules,HoldAll];
myRules[vars_List]:=3D
With[{vv=3DMap[Hold,MapAt[Hold,Hold[vars],{1,0}],{2}][[1]]},
List@@(# -> ReleaseHold[#]& /@ vv)
];

In[2]:=3D var1=3D3; var2=3D5;
myRules[{var1,var2}]

Out[4]=3D {Hold[var1]->3,Hold[var2]->5}

V.Astanoff

```

• Prev by Date: Re: question about sorting lists
• Next by Date: Re: Adding assumptions to SOLVE
• Previous by thread: How to produce variable substitution list?
• Next by thread: Re: How to produce variable substitution list?