Re: Sundry Questions

*To*: mathgroup at smc.vnet.net*Subject*: [mg61162] Re: Sundry Questions*From*: "Jens-Peer Kuska" <kuska at informatik.uni-leipzig.de>*Date*: Tue, 11 Oct 2005 06:19:10 -0400 (EDT)*Organization*: Uni Leipzig*References*: <diabu7$ikb$1@smc.vnet.net><did2le$qco$1@smc.vnet.net> <difrbj$fes$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

Hi, snip-snapp | Your response (a): I was amazed at first that this worked, but after | I assume that if | ParametricPlot had the 'HoldFirst' attribute, then I would have used | the Evaluate method as well, and in fact, any function that has the | 'HoldAll' or 'HoldFirst' attribute set, I should use Evaluate if I am | passing in something created by Table or Map? | a) you should use evaluate when the function has the HoldFirst/HoldAll attribute and the function act different on a _List than on an other expression | As regards your response (b), I guess I wasn't clear. I know that I | can set attributes for a pure function when I use the Function[] syntax | explicitly, but what if I wanted to set attributes for a pure function | such as #^2 & ? b) #^2 & is the short form, you can't use the short form when your function has attributes. Mathematica will convert #^2 & in Function[#^2] anyway the short form is for the quick input and not designed to fit all cases. That is just the same as with Map[], the short form /@ does not allow to set the level explicit as in Map[#^2 &,matrix,{2}] | | | For (f), I apologize for the lack of clarity. f) Subscript[x, 1][t] /. severalSols[[1]] work as expected, x_ in your input is a pattern and the the ReplaceAll[] function don't replace patterns with patterns. You have to use Cases[] when you need a pattern, i.e., Cases[severalSols, Subscript[x, _][_], Infinity] /. severalSols[[1]] | Finally, as regards your answer (g)-2, if Print returns 'Null', and I | successfully evaluated the same code without the 'False' at the end of | the sample, I still don't understand what use the 'False' at the end | is? g) the manual say "lhs :> rhs /; test represents a rule which applies only if the evaluation of test yields True. lhs := rhs /; test is a definition to be used only if test yields True." Null is *not* True, the most simple expression that is Not[True] ist False, and Michael try to present example that agree with the manual. It would confuse the reader mutch more when he had used rule = part_ :> (Null /; (Print["Trying : ",InputForm[part]]; Fluffy^3)) because Fluffy^3 is also not True and the test would also fail every time. Regards Jens