From the classic computer science point of view, you are correct in saying that a lambda that does not capture in variables from its enclosing scope is not a closure. But I think that's a meaningless distinction here that would only serve to be confusing. Rust uses the terminology "closure" to refer to this pipe syntax, regardless of whether it captures variables, and that's fine. It's less confusing for people who aren't coming from a computer science background, and it's not really even strictly speaking wrong. A closure is a function coupled with an environment that allows it to capture values from its scope. A closure that captures no variables can still have an environment, the environment just happens to be null.