The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
decorators
A decorator is a function that receives a function, extends its behaviour, and returned the altered function. Any caller that uses the decorated function uses the same interface as it were the original, undecorated function.
time_it
decorator# Running the original Sys.sleep() produces no output
Sys.sleep(0.1)
# Decorating the Sys.sleep() with time_it() measures Sys.sleep() execution time
# and outputs the measurement
<- decorators::time_it(base::Sys.sleep)
Sys.sleep Sys.sleep(0.1)
#> Time difference of 0.11 secs
validate_arguments
decorator## Define a functions that averages two numbers
<- function(a = NA_real_, b = NA_real_) mean(c(a, b))
average_two_numbers
## Before: Averaging two nun-numeric values returns NA and prompts a warning
average_two_numbers(a = "1", b = "2")
#> [1] NA
## Decorating average_two_numbers() with validate_arguments() checks input types
<- decorators::validate_arguments(average_two_numbers)
average_two_numbers
## After: Averaging two nun-numeric prompts an informative error
average_two_numbers(a = "1", b = "2")
#> Error in average_two_numbers(a = "1", b = "2") :
#> a is of type `character` rather than `numeric`!
You can install the released version of decorators
from
CRAN with:
install.packages("decorators")
And the development version from GitHub with:
# install.packages("devtools")
::install_github("tidylab/decorators") devtools
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.