help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: function help


From: Doug Stewart
Subject: Re: function help
Date: Fri, 24 Feb 2012 11:06:05 -0500



On Fri, Feb 24, 2012 at 5:02 AM, Damian Harty <address@hidden> wrote:
>>> Because by design all the additional function definitions in the .m file
>>> are local and hidden to the outside world.
>>
>> Well, that's the bit I'm not getting. If they are in the script file I'm
>> working in, they don't get much more local than that, do they? I can
>> understand why they would be invisible, say, from the command line despite
>> being present in a script, but I can't understand why they aren't visible
>> when they are /in this file/ and why instead they /have to be in a file with
>> their own name/.
>
> Maybe you can attach the actual script so that others can attempt to duplicate what you are seeing ?

Ah, I did it via that "Nabble" thing and I see it deleted the formatted parts from my earlier post...

The file called add.m contains:

function total=add(x,y)
 total=x+y)
endfunction

The file function_test.m contains:

answer=add(5,9)

This works as advertised.

If at this point I do "which add" it tells me it is "a function from the file add.m" - so far, no surprises.

As I noted earlier, if I now do clear all and which add, there is no existing function. Again, no surprises.

Now, as the original poster noted, if I do clear all, rename add.m to banana.m and then type the following four lines in at the command line (as suggested in the documentation):

function total=add(x,y)
 total=x+y)
endfunction
answer=add(5,9)

...then it also works as advertised. If at this juncture I do "which add" it tells me it is a "command line function".

What doesn't work, and what the original poster found counter-intuitive is that if you put the previous four lines in a file called eric.m then I get an error saying
------------------------------------
Warning: function name `add' does not agree with function file name...
parse error near line 4...

 syntax error

>>>answer=add(5,9)
       ^
------------------------------------

Now, it might well be that this is explained somehow in the help, but as a new starter I am simply commenting that I can't find a succinct explanation and that, moreover, the examples in the documentation give some optimism about grouping functions within a single source file that turns out to be unfounded. I can't comment on whether the aspiration so to do is a good one or a bad one, but I can assert that the confusion on the part of the original poster is entirely understood by me. Both files are .m files, one of them contains a function definition. It isn't stressed that functions need to sit in its own separate file of the same name, and perhaps it could be made clearer to stop people stubbing their toe very early and walking away?



Damian Harty
Senior Research Fellow
Coventry University
+44(0)24 7688 8924
+44(0)7799 414832



_______________________________________________
Help-octave mailing list
address@hidden
https://mailman.cae.wisc.edu/listinfo/help-octave

I completely sympathize with both of  you.
And now I would ask for your help.
The Info that you desire ( that would have helped you ) should be in:
http://www.gnu.org/software/octave/doc/interpreter/Functions-and-Scripts.html

Would you take a look at it and suggest improvements to the documentation? 
Would a new sub-chapter be a good place to put it?
I am asking this of you, because it is fresh in your mind, and because you know where you looked (as a beginner), and maybe where it would be found by beginners.

Please help us make this better!!!
I will do the work, just tell me what to do.

Doug Stewart



--
DAS

https://linuxcounter.net/user/206392.html

reply via email to

[Prev in Thread] Current Thread [Next in Thread]