Pruning can be implemented by just not computing a part of a stream based on some predicate.
If you want some kind of global state of the current results then you just pass around the current calculated states. Pure FP has many simple solutions for passing around state.