• R语言
  • R-lang文档里的一个疑问

在R-lang (Version 2.9)文档25页中有个讲述函数变量的范围的例子,如下:
<br />
> f <- function() {<br />
+ y <- 10<br />
+ g <- function(x) x + y<br />
+ return(g)<br />
+ }<br />
> h <- f()<br />
> h(3)<br />
[1] 13<br />
> h<br />
function(x) x + y<br />
<environment: 0x04759030><br />
> f<br />
function() {<br />
y <- 10<br />
g <- function(x) x + y<br />
return(g)<br />
}<br />
> f()<br />
function(x) x + y<br />
<environment: 0x04759cec><br />
> <br />


有一个疑问请教大家:

1、为什么看不见源代码呢?如果我想看函数h的源代码,该怎么办呢?
>h

function(x) x + y

<environment: 0x04759030>

这就是h的源代码哦。
从这个看不出y等于10啊?

我的意思是显示:
<br />
function() {<br />
+ y <- 10<br />
+ g <- function(x) x + y<br />
+ return(g)<br />
+ }<br />


这一部分
h 并不是这个,当然不会显示成这样了。



注意:“h <- f()” 的意思是把 f() 执行的结果赋值给 h,而不是 f 函数本身。
哦,明白了,呵呵,谢谢!
[quote]引用第2楼pengchy于2009-07-03 18:05发表的 回 1楼(sociology) 的帖子 :

从这个看不出y等于10啊?

我的意思是显示:
<br />
function() {<br />
+ y <- 10<br />
....... [url=http://cos.name/bbs/job.php?action=topost&tid=15765&pid=73806][/url]<br />
[/quote]<br />
<br />
get("y",env=environment(h))