Evaluate a regular map-reduce call with progress updates
Usage
progressify(
expr,
substitute = TRUE,
...,
when = TRUE,
eval = TRUE,
envir = parent.frame()
)Expression unwrapping
The transpilation mechanism includes logic to "unwrap" expressions
enclosed in constructs such as !, { }, ( ), local(), I(),
identity(), invisible(), suppressMessages(), suppressWarnings(),
suppressPackageStartupMessages(), withCallingHandlers(), and
with(). The transpiler descends through wrapping
constructs until it finds a transpilable expression, avoiding the
need to place progressify() inside such constructs. This allows for
patterns like:
y <- {
lapply(xs, fcn)
} |> suppressMessages() |> progressify()avoiding having to write:
y <- {
lapply(xs, fcn) |> progressify()
} |> suppressMessages()Examples
handlers(global = TRUE) # listen to progress updates
#> Error in globalCallingHandlers(condition = global_progression_handler): should not be called with handlers on the stack
xs <- list(1, 1:2, 1:2, 1:5)
y <- lapply(X = xs, FUN = sum) |> progressify()
str(y)
#> List of 4
#> $ : num 1
#> $ : int 3
#> $ : int 3
#> $ : int 15