From help-octave-request at bevo dot che dot wisc dot edu Fri Jun 4 00:44:19 1999 Subject: Re: Function calls (Was: Save a plot to .ps) From: "John W. Eaton" To: Andy Adler Cc: help-octave at bevo dot che dot wisc dot edu Date: Fri, 4 Jun 1999 00:33:35 -0500 (CDT) On 28-May-1999, Andy Adler wrote: | John, I'm not sure I can follow your reasoning. (I may be missing | something really obvious here). I'm all for octave avoiding | inheriting bugs from matlab compatibility, but if there's a | clean way to do something (which I still think there is ) then | I think it should be considered. Sorry, I've given this issue considerable thought now, and I don't think there is a clean and consistent way to make it work. To immitate the Matlab behavior, you have to allow that, in the absence of a variable called `f', f -1 is parsed as a function call in which the string '-1' is passed as an argument, and f - 1 is parsed as a function call in which the strings '-' and '1' are passed as arguments. The only way to make this look like a subtraction is to write f-1 or f- 1 To me, this is unacceptable, because it makes whitespace significant in a very ugly way. | What I'm arguing is that octave already handles the ambiguity | of function calls / matrix subscripting in a consistent way. | (And Matlab does not). Clearly, octave is capable of making | run time decisions about what an identifier represents. | | I'm arguing that this run time capability can be extended to | decide whether | foo -option | is a function call or a subtraction. No. Deciding whether the statement as a function call or a subtraction must happen when the program text is parsed, not when the resulting code is evaluated. | This isn't the worst ambiguity of matlab syntax. | My vote for worst of Matlab is the 0,1 indexing feature, which gives | | a=[2 3]; a([1 1]) | ans = [2 2] | | I've been bitten by this __feature__ many times FWIW, I think this problem is supposed to have been fixed in Matlab 5.x by the introduction of the logical data type. jwe --------------------------------------------------------------------- Octave is freely available under the terms of the GNU GPL. To ensure that development continues, see www.che.wisc.edu/octave/giftform.html Instructions for unsubscribing: www.che.wisc.edu/octave/archive.html ---------------------------------------------------------------------