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

Re: IDL interpreter questions - can someone (D.Fanning) explain - TIA




<mankoff@I.HATE.SPAM.lasp.colorado.edu> writes:

> On Fri, 18 May 2001, JD Smith wrote:
> 
> > dadada wrote:
> > > How are variables referenced by default?
> > I'm not sure what you mean here.  Pointer references?  They are explicit
> > only... i.e. you can't create a reference of an existing variable.
> 
> Not sure either, but here is my interpretation of the question/answer:
> 
> In functions, variables are *always* 'by value'
> In procedures, they are 'by value' unless you put a "return" statement
> anywhere in the procedure. If this exists, then they are passed 'by
> reference'

Sorry Ken I'm going to have to take you to task for a few things.
First of all, pass by value vs. pass by reference:

 * all variables are passed by reference, *except*
 * subscripted arrays, structure tags, and (I believe) system variables,
   which are passed by value

It doesn't make a difference whether you have a return statement or
not.

As for continuations, closures, etc., these are computer science
jargon for specific language behaviors.  IDL has none of them.  I
understand continuations to be a way for execution contexts to be
suspended, saved, and later restored.  Perhaps the CATCH error
handling technique is a nascent continuation.  Alas, this has nothing
to do with the CONTINUE reserved word recently added to FOR and WHILE
loops.

Craig

-- 
--------------------------------------------------------------------------
Craig B. Markwardt, Ph.D.         EMAIL:    craigmnet@cow.physics.wisc.edu
Astrophysics, IDL, Finance, Derivatives | Remove "net" for better response
--------------------------------------------------------------------------