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

Re: brain twister



Todd Clements wrote:
> 
> Paul van Delst <pvandelst@ncep.noaa.gov> wrote:
> 
> >> Okay, enough ideology for one week.
> >
> >That's *almost* a pun. :o)
> 
> Wow, I missed that one. Getting slow, I guess.
> 
> >> ----- Example 2
> >> .comp
> >> function test2, x
> >>   return, x
> >> end
> >>
> >> a = dindgen(5)
> >> (test2(a))[2] = -2
> >> print, a
> >
> >You're right...this is weird. If you do a help:
> >
> >IDL> help, test2(a)
> >A               DOUBLE    = Array[5]
> >
> >How come the result isn't
> >
> ><Expression>    DOUBLE    = Array[5]
> 
> I wouldn't expect the result to be <Expression> becaues the result _is_ A,
> so I would expect IDL to tell me that the result is A. We pass in a by
> reference, return it, and so we should expect to get it back. I'm happy
> that IDL can keep track of the variable through all that mucking around...
> it makes sense to me.

Fair enough. I'm thinking in Fortran mode where there is no standard requirement for parameter
passing to be by value or by reference. I forgot IDL isn't like that.

After reading the online docs, you're absolutely correct that the result is "A" and not an
expression. The result does make sense. After much thought and reflection at least. :o)

paulv

-- 
Paul van Delst           Ph:  (301) 763-8000 x7274
CIMSS @ NOAA/NCEP        Fax: (301) 763-8545
Rm.207, 5200 Auth Rd.    Email: pvandelst@ncep.noaa.gov
Camp Springs MD 20746