Rust ties closures closely to lambdas, but that's not inherently necessary. The article says "Syntactically, a closure in Rust is an anonymous function value defined a little like Ruby, with pipes: |arguments...| body." Actually, that's a lambda, not a closure.
A lambda which references no variables from an outer scope is not a closure.
|x| x*x
is a Rust lambda that isn't a closure.On the other hand, a nested function in Python which references variables from the outer function is a closure that isn't a lambda. That's also true in Javascript. In Rust, you can nest functions, but you can't generate a closure that way. A reference to the outer function scope in a Rust nested function generates an error message. I was surprised by that; I tried to write a closure in Rust as a nested function, and there's an specific error message for that.