Re: Why printing?
- To: mathgroup at yoda.physics.unc.edu
- Subject: Re: Why printing?
- From: p617hfa at sun24.mpifr-bonn.mpg.de (Heino Falcke)
- Date: Wed, 7 Apr 93 10:16:56 +0200
Dear Mathgroup, The following question is another example for a user being fooled by Mathematica shortcuts (and the struggle between pure system philosopy and the human touch of a program): I blame neither Michael nor Mma for that, I also wondered a moment - then I remembered the first lesson I learned in Mma: Never trust your eyes! > Have a look at the following three examples: > 1.) > {a,b}/.{x___,a,y___}:>Print[z;x] > > This prints z!!! > > 2.) > {a,b}/.{x___,a,y___}:>Print[z;] > prints Null (O.K.) > > and > > 3.) > > {a,b}/.{x___,a,y___}:>Print[z;xx] > > prints xx (O.K.). > > > The second and third behaviour is O.K. but why is z Printed in the first > example. > > Any ideas?? > > Michael Trott > > trott at physik.tu-ilmenau.de > It is absolutely O.K. for Mma not print Null in the frist example. The ; is just an abbreviation for CompoundExpression!! You could write instead: {a,b} /. {x___,a,y___}:>Print[CompoundExpression[z,x]] In this specific example x is simply not there (there is more than subtle difference between `not being' and `being (a) null':-). So the expression is correctly evaluated to CompoundExpression[z] as expected. {,a,b} on the other hand will evaluate to null. If (as in the second example) you do not use replacements than z; is of course CompundExpression[z,Null] and evaluates to Null. Heino ``` (o o) --------------oOO--(_)--OOo------------------------------------------------ ___ ___ _____ ___ _____ |Heino Falcke /__/\ /__/| /____/\ /__/| /____/\ |Max-Planck-Institut f. Radioastronomie | \ \ /| || | o \/ | || | o \/ |Auf dem Huegel 69 | |\ \//| || | __/ | ||f| __/ |D-W5300 Bonn, Germany | ||\_/ | || | || | || | |\ \ |E-mail: HFALCKE at mpifr-bonn.mpg.de |__|/ |__|/ |__|/ |__|/ |__|/\_||Fax: 49/(0)228/525-229 |Tel.: 49/(0)228/525-285 ----------------------------------------------------------------------------