Re: Why printing?
- To: mathgroup at yoda.physics.unc.edu
- Subject: Re: Why printing?
- From: jacobson at cello.hpl.hp.com
- Date: Mon, 05 Apr 93 08:44:57 -0700
Trott Michael <Michael.Trott at physik.tu-ilmenau.de> notes the
following:
1.)
{a,b}/.{x___,a,y___}:>Print[z;x]
This prints z!!!
This is a normal consequence of the strange semantics of Mathematics.
For the pattern {x___,a,y___} to match {a,b}, x must be bound to an
empty sequence: Sequence[]. Now the FullForm of the Print thing is
Print[CompoundStatement[z,x]]. When we replace x by Sequence[], we
get Print[CompoundStatement[z,Sequence[]]], which immediately
collapses to Print[CompoundStatement[z]], which then evaluates to
Print[z].
You have to be real careful with Sequences. This is but one of many
examples where they result in unexpected behavior.
-- David Jacobson