MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

A few usage based questions

  any light shed on the following would be appreciated:

Question 1:  If I wanted to experiment with ReplaceAll and
ReplaceRepeated, how would I use a variable to achieve this?

e.g.  I tried this:
replaceType = /.; (* replaceType would also be //. for subsequent
(* initialize counter *)
counter = 0;
resultOne = (2 a M[1] M[
  2] M[] + 3 b M[1, 3] M[2] M["s"] + Log[f[
        M[1] M[1.2] M[3.4] M[M]]]) replaceType {m1_M
        m2_M :> (++counter; MContainer[m1, m2])}

but got the following error:
Syntax::sntxb : Expression cannot begin with "replaceType = /.;".

What I was trying to achieve (for an obviously longer example) was to
be able to set the type of replace I wanted to do at the beginning of
the cell, then use that symbolic name inside of the actual 'code'.
BTW, the sample I am attempting to modify is from page 615 of Michael
Trott's "The Mathematica Guidebook for Programming".

Question 2:  What is the correct method to limit the types of values a
function will accept?
If I wanted to constrain the argument type of a function to be all
reals, is this the right way?
f[x_Real|x_Integer] := something
The above works, but I haven't seen my attempt confirmed in any

Question 3:  How do I know what a function returns?  (e.g. a boolean or
Null or an integer, a string, etc.)

Thanks much,


  • Prev by Date: Re: Skipping Elements in Sum
  • Next by Date: Re: SameTest in Union
  • Previous by thread: Re: ListPlot3D Scatter Plot
  • Next by thread: Re: A few usage based questions