Если вы спроектируете distribuciones
для возврата функции, а затем создадите вызов этой функции для доставки ее конкретного c экземпляра, значения p
, m
и v
будут в среде этой указанной c экземплярной функции:
distribuciones<-function(p,m,v){ function(p,m,v){
qnorm(p=p,mean=m,sd=sqrt(v))}}
qn <- distribuciones(.5,0,1)
Затем вы получите:
> qn
function(p,m,v){
qnorm(p=p,mean=m,sd=sqrt(v))}
<bytecode: 0x563aede21890>
<environment: 0x563aee272720>
> ls(environment(qn))
[1] "m" "p" "v"
> environment(qn)$p
[1] 0.5
> environment(qn)$m
[1] 0
> environment(qn)$v
[1] 1
Вы также можете настроить ее для создания функции без параметров:
distribuciones<-function(p,m,v){ function(){
qnorm(p=p,mean=m,sd=sqrt(v))}}
qn <- distribuciones(.5,0,1)
> qn()
[1] 0