Lambda's have state.  They have variables.  Those variables are opaque on inspection.

Ruby probably shouldn't have lambda's, sadly.  But there is another "kind of closure", to abuse the term, that Ruby supports: Objects.  Just like a lambda, they encapsulate state, but not the whole lexical state of the lambda declaration.  Now, an object is not feasible here, given the API, of the receive of the lambda.  But a simple, Ruby block is typically used.