From: Ethan A M. <merritt@u.washington.edu> - 2006-05-30 15:27:54
|
On Monday 29 May 2006 05:53 pm, Daniel J Sebald wrote: > >> > >>gnuplot> print defined("foo") > >>141158968 > > > > We don't have a user-visible TBOOLEAN type, > > so any non-zero value represents "TRUE" > > Right. The point is that the test and the result are meaningless. > foo was never defined, so if anything the result should be zero. I think you are looking at this the wrong way. The defined() operator is to protect you from trying to evaluate an expression with an undefined quantity. "foo" (with the quotes) is a legal string and hence a legal token to place in an expression. So defined("foo") is TRUE. This is no stranger than print defined(42) or print defined(sin(x)) or for that matter print (4 || 2) The problem is not in the syntax of defined(); the problem is that you should not be trying to "print" a BOOLEAN. It would be nicer if 'print defined(1)' resulted in printing the string TRUE, but I don't see a way to do that. If there is a bug lurking anywhere here, it is that print defined(0) results in 0 rather than 1. -- Ethan A Merritt Biomolecular Structure Center University of Washington, Seattle 98195-7742 |