It occurred to me that maybe I should supply a more non-trivial
example of rules/patterns/subs in mathematica.  Here is just one: we
replace exponents of polynomials with the famous 3x+1 sequence
(Collatz, whatever) until they stabilize:

In: {x^2, x^3 + x^200,  x^4 + z^909} //. {y_^n_ /; Mod[n, 2] == 1 ->
y^(3 n + 1),  y_^n_ /; Mod[n, 2] == 0 -> y^(n/2)}

Out: {x, 2 x, x + z}

-MH

On May 9, 12:25 pm, Marshall Hampton <[EMAIL PROTECTED]> wrote:
> Well, the design is somewhat different to start with: in Sage, you
> have to declare variables explicitly (i.e. with var('x,y') or
> whatever), but then symbolic variables can automatically act like
> functions (as in the usage/bug above).  In mathematica, anything
> undefined is _assumed_ to be a new symbolic object.
>
> Strings behave in a funny way in mathematica.  They are usually
> evaluated to symbolic expressions.  Here is a (hopefully) relevant
> example, setting the value of something to a string and then using it
> in a function:
>
> In: a = "test"
> Out: test
>
> In: f[x_] := x^2
> In: f[a]
> Out: test^2
>
> The output is misleading since the returned object is really
> Power["test",2] but that is displayed the same way that the symbolic
> expression Power[test,2] is.
>
> Somewhat relevant to this are the (IMHO) very nice substitutions,
> rules, and patterns in mathematica (although the syntax is pretty
> odd).  As a very simple example, the command:
>
> In: {x, x*y} /. {{x -> 1, y -> 2}, {x -> 2, y -> 3}}
>
> returns
>
> Out: {{1,2},{2,6}}
>
> The Sage subs command is quite weak compared to such substitutions in
> mathematica.  One can do very complicated condition substitutions,
> regular-expression like matching, etc.
>
> Cheers,
> Marshall
>
> On May 9, 11:54 am, "William Stein" <[EMAIL PROTECTED]> wrote:
>
> > On Fri, May 9, 2008 at 10:03 AM, Marshall Hampton <[EMAIL PROTECTED]> wrote:
>
> > > Ah, ok.  I am probably not the right person to weigh in on what
> > > symbolics should do.  I'll be happy if I can do most of what I could
> > > do in mathematica - since I used it for 16 years, it defines what I
> > > expect, but of course it won't always be the right design to follow
> > > for Sage.
>
> > > -M. Hampton
>
> > Wait -- please *do* weigh in, and do explain what Mathematica would
> > do in analogous situations.  I do care to hear.
>
> > William
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sage-support
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to