Am 26.10.2018 um 14:46 schrieb Allin Cottrell:
On Fri, 26 Oct 2018, Sven Schreiber wrote:
>
> I don't mean to imply any consequences (except perhaps warnings and
> hints to package writers in the docs), but for completeness it should
> perhaps be noted that this is not entirely true: If you receive a
> list argument and pick out certain series their names come from the
> outside.
But they cannot be referenced by their outer names within the
function, you have to use the List.$i syntax. Here's an example:
<hansl>
function void argnames (list L)
loop foreach i L
series x$i = L.$i(-1)
print x$i
endloop
end function
open denmark
rename LRY sin # try to cause trouble!
list X = LRM sin
argnames(X)
</hansl>
Inside argnames() we're able to take a lag of the series known as
"sin" in main without a problem.
Also good to know, but what I meant is
something like this:
<hansl>
clear
function list LRM(int i)
print "just to have a function with this name"
list L1 = null
return L1
end function
function list exlag(list L)
s = varnames(L)[1]
series @s = L[1]
list out = @s(-1)
return out
end function
open denmark
list Lo = exlag(LRM)
list Lo print
</hansl>
Again, I'm not saying these artificial cases have to be caught, just
adding this example for completeness.
cheers,
sven