On Saturday, 19 July 2014 at 00:05:55 UTC, Brad Anderson wrote:
To summarize what I think are the best ideas so far:
std.string
----------
Eager Lazy
----- ----
capitalize capitalized
center centered
detab detabbed
entab entabbed
format formatted
leftJustify leftJustified
munch munched
outdent outdented
removechars charsRemoved
rightJustify rightJustified
splitLines (none, uses splitter)
squeeze squeezed
strip stripped
stripLeft leftStripped
stripRight rightStripped
succ successor
toLower lowercased
toStringz nullTerminated
toUpper uppercased
translate translated
wrap wrapped
std.path
--------
Eager Lazy
----- ----
absolutePath absolutePathOf *
buildNormalizedPath asNormalizedPath *
buildPath asPath *
defaultExtension withDefaultExtension *
dirName dirNameOf *
driveName driveNameOf *
expandTilde tildeExpanded
relativePath relativePathOf *
setExtension withExtension
stripDrive driveStripped
stripExtension extensionStripped
* - not terribly happy with these but I'd say it's the best of
what's been proposed
Generally it seems like past tense works when the function has
a verb, "with" prefix when there is no verb but you are
modifying something about the input, and "Of" suffix when you
are pulling something out. Also, the verb should come last
because it has a better ring to it.
Do we really want to be naming functions which aren't properties
with adjectives instead of verbs? That seems very wrong to me.
I'd much rather see stuff like setExt or setExtLazy than
withExtension or extensionSet. Function names are supposed to be
verbs unless they're emulating variables. They _do_ something,
even if it's lazy.
- Jonathan M Davis