2
Est-il possible de définir un attribut de fonction dans la fonction même?
Il peut être défini à l'extérieur, mais existe-t-il une notation pour l'auto-référence dans une fonction?R définir un attribut de fonction à l'intérieur de la fonction
f2 = function(x) {
x/2
attr(thisObject(),'type')='half' #something like thisObject()
}
Il est facile de le faire en dehors de la fonction:
attr(f2,'type')='half'
Dans une situation, je dois savoir quel type de fonction est passé par:
fCalc=function(f=f2,x){
if(attr(f,'type')=='half') {
cat('ok\n')
return(f(x))
} else cat('not ok')
}
fCalc(f2,4)
ok
[1] 2
Je serais intéressé de connaître le cas d'utilisation pour cela. –
Votre situation n'explique pas pourquoi vous devez définir l'attribut dans la fonction, par opposition à l'extérieur de la fonction. –
Chaque fois que je modifie la fonction, je dois me rappeler de redéfinir l'attribut. Parfois j'oublie ... – xm1