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 in .f(...) : non-numeric argument to mathematical function
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.
These two functions take a function, and add a warning or a message to it.