|
|
|
|
|
by steveklabnik
4137 days ago
|
|
As a Rubyist, I found the closure syntax quite comfortable, as they're almost identical. Passing a closure or lambda to some function foo: x = foo {|x| x + 1 } # Ruby
let x = foo(|x| { x + 1 }); //Rust
let x = foo(|x| x + 1 ); // single expressions don't need {}s
That said, I'm not sure what the exact reason was for choosing the syntax, as that was before my time. |
|
I think the reason is just that it's very concise, and lightweight closure syntax makes things like `Option::map` feel like first-class parts of the language. The closure you pass just sort of seamlessly "blends in".
Note that having especially sugary here is not so uncommon, for example Haskell has `\x -> blah` for Rust's `|x| blah`.
I'm personally very happy that the closure syntax is as concise as it is.