On Tuesday, 23 June 2015 at 23:58:52 UTC, Vladimir Panteleev wrote:
On Tuesday, 23 June 2015 at 23:49:45 UTC, Vladimir Panteleev wrote:
- Ultimately, we want to encourage use of the lazy versions, in the same way that e.g. std.algorithm and std.range are encouraged over eager operations for arrays.

Another point: the range-ification of Phobos is only going to continue. This means that, should this scheme be followed, the number of functions with "Lazy" in the same is only going to grow, and as these functions are intended to become the canonical way to write modern D, so will the number of occurrences of "Lazy" in a typical canonical D program. I think this is a strong argument for avoiding "Lazy", at least for functions which intend to displace their eager counterparts.

Ok, I'm with you.  Allow me to offer another suggestion then.

1. Add functions `toUpperCaseEager` and `toLowerCaseEager`.
2. Have `toUpper` forward to `toUpperCaseEager` and `toLower` forward to `toLowerCaseEager` with a friendly comment. You don't need to deprecate `toUpper` or `toLower` unless you want to. It will happen naturally and gradually in time anyway. 3. Add functions `toUpperCase` and `toLowerCase` implementing the lazy versions.

Something similar could also be applied to `setExtension`
1. Add `setExt` implementing the lazy version and `setExtEager` implementing the eager version 2. Forward `setExtension` to `setExtEager` with a friendly comment. Again, you don't need to deprecate `setExtension` unless you want to. It will happen naturally and gradually in time anyway.

If this only makes things worse in your opinion, go with `withExtension` and your other suggestions. I'm already weary of this.

Mike

Reply via email to