Adverbs take a function and return a modified function.
silently()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 in .f(...) : non-numeric argument to mathematical functionWith silently(), the result is never returned.
surely()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.