lib.nim: 
    
    
    import random
    import std/monotimes
    
    var list: ref seq[Monotime]
    new list
    
    proc action* =
      echo "Actions here."
    
    proc check(num: int) =
      if num == 1:
        list[].add(getMonoTime())
        action()
    
    proc makeStep*(): ((proc(): void), ref seq[Monotime]) =
      let step = proc() {.closure.} =
        let val = rand 1..6
        check val
      (step, list)
    
    
    Run

main.nim: 
    
    
    import lib
    
    when isMainModule:
      var (step, list) = makeStep()
      for a in 1..10:
        step()
      
      echo list[]
    
    
    Run

Can this approach be used?

Reply via email to