Hello,

I am not sure I understand the question.
You say that

One way to prevent this [to print the attributes] is to set the function's environment to the global environment.

But this is not true, just see the example below, where I set the function's environment to .GlobalEnv


myfunction2 = function (){
  f = function () NULL
  attributes (f) = list (class="myfunction2", myattribute2=1)
  environment(f) <- .GlobalEnv
  f
}

myfunction2.f = myfunction2 ()

myfunction2.f
#function ()
#  NULL
#attr(,"class")
#[1] "myfunction2"
#attr(,"myattribute2")
#[1] 1

environment(myfunction2.f)
#<environment: R_GlobalEnv>


When you run the function's name, the function's definition is printed, all of it. If you want to print its return value you have to call it with the parenthesis:

myfunction2.f()    # My function
#NULL

myfunction.f()     # Your function
#NULL


If you want to print the body of the function, use, well, body().

body(myfunction.f)
#NULL


Hope this helps,

Rui Barradas
Às 04:16 de 14/08/2018, Abs Spurdle escreveu:
Hi All

When you print a function constructed within a function, R prints it's
environment.
For example:

myfunction = function ()
+ {   f = function () NULL
+     attributes (f) = list (class="myfunction", myattribute=1)
+     f
+ }

myfunction.f = myfunction ()

myfunction.f
function ()
NULL
<environment: 0x03fcbc30>
attr(,"class")
[1] "myfunction"
attr(,"myattribute")
[1] 1

One way to prevent this is to set the function's environment to the global
environment.
But I was wondering if there's a way to stop R from printing the
environment without changing the environment?


kind regards
Abs

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to