16
Yakınlarda bir meslektaş, çağrı grafikleri arıyordu ve ne aradığını görmek istedim. Bu bana yapalımR işlevleri için bir dekoratör yazma
instrument=function(z){
force(z)
n=deparse(substitute(z)) # get the name
f=function(...){
cat("calling ", n,"\n")
x=z(...)
cat("done\n")
return(x)
}
return(f)
}
:
> foo=function(x,y){x+y}
> foo(1,2)
[1] 3
Yani bunu biz mvbutils gelen foodweb ile hallettik ama R. içinde (piton konuşuyoruz) en iyi bir dekoratör oluşturma hakkında merak
ve şimdi onu sararak işlevi kendisini log yapabilirsiniz:
> foo=instrument(foo)
> foo(1,2)
calling foo
done
[1] 3
bu demek bir pakette, daha önce yapılmış ve bunu yaparken tarzımı kıracak herhangi FRİKİKLERİNDEN kaçırmış?
Adil soru, yanlış kitle. IMNSHO'nun bunu açıkça “r-devel” üzerinde sormanız gerekiyor. –
Gabor seyircilerde olduğu sürece, doğru seyirci. – Spacedman
Harika bir soru. Cevap kabul edilmesine rağmen, daha kanonik/ansiklopedik bir tane görmek istiyorum :) – fmark