I favor this approach too. As an example, Scala does something similar: a call to Map() constructs an immutable map object (it is in the "default" namespace), whereas if you want a mutable Map object, you have to import it from scala.collection.mutable.Map.
-- Ziad On Fri, Dec 20, 2013 at 10:50 PM, Alex Crichton <[email protected]>wrote: > In the past we have explicitly attempted to drop as many suffixes as > possible (see #8090). This is a little bit of a tricky topic, and to > me it depends on how you name the iterator. To me, iter::Map and > container::Map are clearly different if they are named that way. If > they are imported and then named via Map, then I can see how there > would be some confusion. I have a preference to naming things through > a module instead of importing giant numbers of capital-letter things > at the top of a file. > > We already have an open issue about reorganizing libstd (#9208) with a > major goal of reducing stuttering all over the place (which adding > Iterator suffixes would add in a few places). > > Mostly just food for thought. > > On Fri, Dec 20, 2013 at 8:51 PM, Palmer Cox <[email protected]> wrote: > > I noticed recently that there seem to be 3 distinct Iterator naming > > conventions currently in use: > > > > 1. Use the "Iterator" suffix. Examples of this are SplitIterator and > > DoubleEndedIterator. > > 2. Use the "Iter" suffix. Examples of this are ChunkIter and > ComponentIter. > > 3. Use no particular suffix. Examples of this are Invert and Union. > > > > Iterators are somewhat special objects, so, it makes sense to me that > they > > have a suffix in common to denote their common behavior. It seems > non-ideal, > > however, that there appear to be 3 separate conventions in use since > that is > > just confusing. Personally, I think I prefer #1 because its far and away > the > > most common and and because I think #2 and #3 have issues: > > > > #2 ("Iter" suffix): If we used this suffix, would we rename > > DoubleEndedIterator to DoubleEndedIter? That looks awkward since we > > abbreviated Iterator without abbreviating anything else. However, > > DblEndedIter is a monstrosity. So, this convention seems non-ideal to me. > > > > #3 (no suffix): I think its pretty confusing while reading through code > that > > there are both iter::Map and container::Map since they are completely > > unrelated. I'm also not a big fan of Union since I think as a union as a > > collection of information that I can iterate multiple times. However, > since > > Union is itself an Iterator, I can only iterate it once. This means I > would > > have to be careful passing a Union around to make sure I don't pass > around > > an already iterated Union object. > > > > So, I opened up https://github.com/mozilla/rust/pull/11001 to > standardize on > > #1 - all Iterators have an Iterator suffix. > > > > Thoughts? > > > > -Palmer Cox > > > > > > _______________________________________________ > > Rust-dev mailing list > > [email protected] > > https://mail.mozilla.org/listinfo/rust-dev > > > _______________________________________________ > Rust-dev mailing list > [email protected] > https://mail.mozilla.org/listinfo/rust-dev >
_______________________________________________ Rust-dev mailing list [email protected] https://mail.mozilla.org/listinfo/rust-dev
