It's a tough balancing act. Sigils are bad but then if things are too
concrete that's bad too.
The slashes are visually hard to parse, I think everyone agrees.
Imagine this: `&a/B/c/d/e`. That would be a legal type under that
proposal and I think it's pretty darn confusing vs `&'a B<'c, 'd, 'e>`
I'm really starting to like the 'lt notation, I have to say.
Niko
Paul Nathan wrote:
My general 2c, worthless as it might be:
One of my criticisms of perl when I use it is that my cats could sit
on the keyboard and produce correct code.
Sigil heavy code produces IMO a heavy mental burden. There is the
popular c++ quiz question 'what does this syntax bundle do'. It's
really quite pointless and just a puzzle IMO. Mostly a mental exercise
to prove something.....
I'd like not to endure that with Rust.
Lifetime-qualifier/variable seems to be reasonable: I'd suggest
further information could be stacked up with /s as
Info/lifetime/variable
Or
Type/info/lt/variable
Etc. I write lisp a lot and if verbosity is onerous, a macro can be
written to shorten it. I presume/hope rust's macros are sufficient to
that task.
I think it's better to opt for obvious and lengthy at first and then
allow power users to use shortcuts. Too many sigils is confusing to
the uninitiated.
Regards,
Paul Nathan
Sent from my iPhone
On Jan 23, 2013, at 1:44 PM, Niko Matsakis <[email protected]
<mailto:[email protected]>> wrote:
Dean Thompson wrote:
Personally, though, I find myself increasingly attracted to the idea of
having a consistent notation for writing a lifetime everywhere one
appears, independently of the& symbol. (/lt/ is the only such notation
I've found yet that seems reasonable.)
I like this idea too, I just don't like /lt/ for that role.
Maybe `'`? (shades of ML)
&'lt Foo
Foo<'lt>
That actually doesn't look half bad to me.
Maybe `.`?
&.lt Foo
Foo<.lt>
I don't like Foo<.lt>, but &.lt Foo and Foo<lt> might be ok, though
it doesn't adhere to the principle (in that lifetime names are just
like any other identifier).
Another option:
&{lt} Foo
Foo<{lt}>
But the latter form feels pretty sigil heavy.
Niko
_______________________________________________
Rust-dev mailing list
[email protected] <mailto:[email protected]>
https://mail.mozilla.org/listinfo/rust-dev
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev