Naming conventions

From D Wiki
Jump to: navigation, search

Schemes

I could identify the following distinct naming schemes:

Name Example Template
result-noun chunks This function returns its argument(s) as/in (a) _____
This function returns the _____ of its argument(s)
The function's return value is a _____ of its argument
result-adjective chunked This function's return value is its argument(s) but _____
This function's return value is _____ compared to its argument(s)
verb chunk / chunkify This function's goal is to _____ its argument(s)
verb-noun chunker This function is a(n) _____
preposition+noun/adj. byChunk / asChunks This function's return value presents the argument _____

Existing names

Here are some lazy functions in Phobos which operate on (take and return) ranges, their existing names (in bold), and what their name might look like in the above naming schemes. Names already in use by other parts in Phobos are struck out.

Feel free to edit this table if you have any brilliant ideas, but just to clarify - these are informative, and no renaming of existing, established names is being considered.

result-noun result-adjective verb verb-noun preposition+noun/adj. other
std.range
reversed reverse reverser inReverse retro
stride stridden stride strider withStride
chain chained chain chainer asChain
roundRobin inRoundRobin
radialOrder radial radialArrange radialArranger inRadialOrder
prefix taken take taker withLength
exactPrefix exactTaken takeExactly exactTaker withExactLength
singlePrefix oneTaken takeOne oneTaker withLengthOne
noPrefix noneTaken takeNone noneTaker asEmpty
suffix dropped drop dropper withDropped
exactSuffix exactDropped dropExactly exactDropper withExactDropped
singleSuffix oneDropped dropOne oneDropper withOneDropped
repeat repeated repeat repeater
cycle cycled cycle cycler
zipped zip zipper
lockstep lockIterate lockIterator inLockstep
transversal transversed transverse transverser asTransversal
frontTransversal frontTransversed transverseFront frontTransverser
transposition transposed transpose transposer
indexed index indexer withIndex
chunks chunked chunk / chunkify chunker byChunk / asChunks
enumeration enumerated enumerate enumerator
std.range (new in 2.068)
choice chosen choose chooser
choiceAmong chosenAmong chooseAmong chooserAmong
generation generated generate generator
merge merged merge merger
std.algorithm
commonPrefix getCommonPrefix
find finder
findAdjacent adjacentFinder
findAmong
until
mismatch getMismatch
cache cached cache cacher withCache
cacheBidirectional bidirectionalCached cacheBidirectional bidirectionalCacher withBidirectionalCache
chunkedBy chunkBy chunkerBy
filter filtered filter filterer withFilter
filterBidirectional filteredBidirectional filterBidirectional bidirectionalFilterer withBidirectionalFilter
group grouped group grouper asGroup
join joined join joiner
map mapped map mapper
reduction reduced reduce reducer
split split split splitter
unique uniq
cartesianProduct crossJoined crossJoin crossJoiner
nWayUnion
setDifference subtracted setSubtract setDifferentiator
setIntersection intersected setIntersect setIntersecter
setSymmetricDifference symmetricSubtracted setSymmetricSubtract setSymmetricDifferentiator
setUnion unionized setUnion setUnionizer union (verb)
std.path (new in 2.068)
extChanged setExt, setExtension extensionSetter withExtension
defaultExt, defaultExtension defaultExtChanged setDefaultExtension defaultExtensionSetter withDefaultExtension
chainedPath chainedPath chainPath, buildPath pathBuilder
absolutePath makeAbsolutePath absolutePathBuilder, pathAbsolutizer toAbsolutePath, asAbsolutePath
normalizedPath makeNormalizedPath normalizedPathBuilder, pathNormalizer toNormalizedPath, asNormalizedPath
relativePath makeRelativePath relativePathBuilder, pathRelativizer toRelativePath, asRelativePath
std.uni (new in 2.068)
lowerCaseString lowerCased lowerCase lowerCaser toLowerCase, asLowerCase
upperCaseString upperCased upperCase upperCaser toUpperCase, asUpperCase
capitalization capitalized capitalize capitalizer toCapitalized, asCapitalized
std.string (new in 2.068)
entabbed entab entabber
detabbed detab detabber
leftJustification leftJustified leftJustify leftJustifier
rightJustification rightJustified rightJustify rightJustifier
centerJustification centerJustified centerJustify centerJustifier
soundex soundexed soundex soundexer