Re: Null in output problem

*To*: mathgroup at smc.vnet.net*Subject*: [mg13780] Re: Null in output problem*From*: "Clemens Frey" <Clemens.Frey at uni-bayreuth.de>*Date*: Mon, 24 Aug 1998 05:07:28 -0400*Sender*: owner-wri-mathgroup at wolfram.com

-----Urspr|ngliche Nachricht----- Von: Tom Goetze <TomG at ultimatetech.com> An: mathgroup at smc.vnet.net <mathgroup at smc.vnet.net> Datum: Mittwoch, 19. August 1998 11:30 Betreff: [mg13730] Null in output problem >I'm writing a package and one of the functions I define in it outputs >'2 Null' >when called. > >this seems like a very strange output. Of course, I seem to be able to >run the exact same commands not in the package in several pieces and >get a result (which is not '2 Null'). So that is also rather >bothersome. > >Anybody have any suggestions as to why '2 Null' would be the output of a >Sum call? Sum is the last piece of the Module that is being called. > >I would like to post some of the code, but it is rather long and messy. >Of course, I will try to get it to do the same thing with a smaller >more trivial piece of code, but I thought someone might have some good >input on Null in output before I got to that stage. > >Thanks for any input, > >Tom Goetze > Tom: No problem to produce a trap like this. Write exactly the following f[x_] := (If[False, NeverExecuted] Sum[i,{i,-1,2}]) into a package file (with the line break after If). Or, what's equivalent: f[x_] := Module[ {}, If[False, NeverExecuted] Sum[i,{i,-1,2}] ] again with the line break... Load the package, and get for f[whatever] 2 Null So what? When the package is loaded, Mathematica understands the line break after 'If ' as a multiplication operator (and gives you a syntax::newl warning). Because the second case for 'If' is not defined, you get a Null*2 , what is our 'result' above. regards Clemens PS This trap was produced with Mathematica 2.2, so hope it 'works'.