## rollback a specific number of times
traj <- trajectory() %>%
log_("hello!") %>%
timeout(1) %>%
rollback(2, 3)
simmer() %>%
add_generator("hello_sayer", traj, at(0)) %>%
run() %>% invisible
## same but with a tag as target
traj <- trajectory() %>%
log_("hello!", tag="msg") %>%
timeout(1) %>%
rollback("msg", 3)
simmer() %>%
add_generator("hello_sayer", traj, at(0)) %>%
run() %>% invisible
## custom check
env <- simmer()
traj <- trajectory() %>%
set_attribute("var", 0) %>%
log_(tag="msg", function()
paste("attribute level is at:", get_attribute(env, "var"))) %>%
set_attribute("var", 25, mod="+") %>%
rollback("msg", check=function() get_attribute(env, "var") < 100) %>%
log_("done")
env %>%
add_generator("dummy", traj, at(0)) %>%
run() %>% invisible
Run the code above in your browser using DataLab