[Rd] formals assignment now strips attributres
Patrick Burns
pburns at pburns.seanet.com
Sun May 1 13:24:33 CEST 2005
Peter Dalgaard wrote:
>Patrick Burns <pburns at pburns.seanet.com> writes:
>
>
>
>>But the buglet gets more aggressive if you edit the function:
>>
>> > fjj <- function() x
>> > formals(fjj) <- list(x=c(a=2, b=4))
>> > fjj
>>function (x = c(2, 4))
>>x
>> > fjj()
>>a b
>>2 4
>> > fix(fjj) # do nothing but save
>> > fjj()
>>[1] 2 4
>>
>>I'm quite sure that I wouldn't have noticed if my real function were
>>not broken.
>>
>>Now I know that my functions will work if I assign the formals after I
>>edit the
>>function -- even though they look like they shouldn't work.
>>
>>
>
>You did invite trouble by creating and subsequently a function that
>_has_ no source representation though:
>
>
>
>>fjj <- function() x
>>formals(fjj) <- list(x=quote(c(a=2, b=4)))
>>fjj()
>>
>>
>a b
>2 4
>
>
>>fix(fjj)
>>fjj()
>>
>>
>a b
>2 4
>
But the point of using 'formals' in the first place is to get a
function that is self-contained. The real application is more
like:
formals(fjj) <- list(x = an_object)
I want 'fjj' to work even when 'an_object' is nowhere to be
found.
'formals' worked as (I) expected in versions 1.8.0
through 1.9.1 at least.
Pat
>
>
>
More information about the R-devel
mailing list