I have noticed that only user-specified
functions have this effect:
function scalar mynelem (list alist)
return nelem(alist)
end function
function void spoil100(bundle *b)
s = nelem(b.xlist)
end function
function void spoil200(bundle *b)
s = mynelem(b.xlist)
end function
function void fu(string name)
catch eval @name
end function
nulldata 20
set seed 13
y = normal()
x1 = normal()
x2 = normal()
bundle bu
list bu.xlist = x1 x2
fu("x1")
fu("x2")
fu("y")
# no effect
spoil100(&bu)
fu("x1")
fu("x2")bewtween
fu("y")
# "penetrating" the only difference
# between spoil100 and spoil200 is in
# using user-specified mynelem and
# the native nelem; with mynelem
# being just wrapper over nelem
spoil200(&bu)
fu("x1")
fu("x2")
fu("y")
Oleh