Rmonad merges blocks of code into a graph containing the history of all past
operations, and optionally their values. It consists mainly of a set of
monadic bind operators for controlling a pipeline and handling error. It
also contains functions for operating on monads, evaluating expressions into
monads, and extracting values from them. I will briefly introduce the most
useful of these here. For more information see the
monadic bind: applies rhs function to the lhs value
monadic bind: store intermediate result
bind lhs list as arguments to right. The lhs may be a literal list or a monad bound list.
perform rhs action, discard result, pass the lhs
Bind as a new branch, pass input on main. This
%>_% in that future operations do not depend on its
pass/fail status. Use
unbranch to extract all branches from an
if input is error, use rhs value instead
if input is error, run rhs on last passing result
keep parents from the lhs (errors ignored). This allows chaining of independent operations.
%^>% Monadic bind and record input in monad. Perform rhs operation
on lhs branches. I may deprecate this operator.
as_monad - evaluate an expression into a monad (capturing error)
funnel - evaluate expressions into a list inside a monad
forget - erase parents from a monad
combine - combine a list of monads into a list in a monad
esc - extract the result from a computation
mtabulate - summarize all steps in a pipeline into a table
missues - tabulate all warnings and errors from a pipeline
unbranch - extract all branches from the pipeline
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
# chain operations cars %>>% colSums # chain operations with intermediate storing cars %v>% colSums # handle failing monad iris %>>% colSums %|>% head cars %>>% colSums %|>% head # run an effect cars %>_% plot %>>% colSums # return first successful operation read.csv("a.csv") %||% iris %>>% head # join two independent pipelines, preserving history cars %>>% colSums %__% cars %>>% lapply(sd) %>>% unlist # load an expression into a monad, catching errors as_monad(stop("instant death")) # convert multiple expressions into a list inside a monad funnel(stop("oh no"), runif(5), sqrt(-1))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.