Re: Equating a variable and its value
- To: mathgroup at christensen.cybernetics.net
- Subject: [mg1237] Re: Equating a variable and its value
- From: rubin at msu.edu (Paul A. Rubin)
- Date: Fri, 26 May 1995 05:00:02 -0400
- Organization: Michigan State University
In article <3puhq7$m8n at news0.cybernetics.net>, jans at matematik.su.se (Jan Snellman) wrote: -> ->Hello folks. -> ->Study this codelet: -> ->m=3; mult=Times[#,m]&; Clear[m]; mult[10] -> ->To my dismay, I get 10 m, not 30. ->How can i convince Mathematica that only pedants make the distinction ->between a variable and its value? -> ->Regards, ->Jan Snellman jans at matematik.su.se -> The problem is that Function (which you are invoking with the ampersand suffix) has attribute HoldAll: it holds all its arguments unevaluated. If you wrap the function (excluding the ampersand) in Evaluate[], you get what you wanted: m=3; mult=Evaluate[Times[#,m]]&; Clear[m]; mult[10] produces result 30. Paul ************************************************************************** * Paul A. Rubin Phone: (517) 432-3509 * * Department of Management Fax: (517) 432-1111 * * Eli Broad Graduate School of Management Net: RUBIN at MSU.EDU * * Michigan State University * * East Lansing, MI 48824-1122 (USA) * ************************************************************************** Mathematicians are like Frenchmen: whenever you say something to them, they translate it into their own language, and at once it is something entirely different. J. W. v. GOETHE