Adverbs take a function and return a modified function.
silently
transforms a function so that when you call this new function, it returns nothing unless there is an error or a warning (contrary to attempt
that returns the result). In a sense, the new function stay silent unless error or warning.
silent_log <- silently(log)
silent_log(1)
silent_log("a")
# Error: argument non numérique pour une fonction mathématique
With silently
, the result is never returned.
surely
transforms a function so that when you call this new function, it calls attempt()
- i.e. in the code below, calling sure_log(1)
is the same as calling attempt(log(1))
. In a sense, you’re sure this new function will always work.
with_message
and with_warning
These two functions take a function, and add a warning or a message to it.
as_num_msg <- with_message(as.numeric, msg = "We're performing a numeric conversion")
as_num_warn <- with_warning(as.numeric, msg = "We're performing a numeric conversion")
as_num_msg("1")
#> We're performing a numeric conversion
#> [1] 1
as_num_warn("1")
#> Warning in as_num_warn("1"): We're performing a numeric conversion
#> [1] 1