Difference between revisions of "Pairs of identifiers"
Jump to navigation
Jump to search
(HaskellWiki syntax highlighting, Table) |
m (Minor formatting changes) |
||
(7 intermediate revisions by 4 users not shown) | |||
Line 12: | Line 12: | ||
where for instance some duplicates are removed. |
where for instance some duplicates are removed. |
||
+ | <tt> |
||
− | {| |
+ | :{| |
| Create || Delete |
| Create || Delete |
||
|- |
|- |
||
Line 76: | Line 77: | ||
|- |
|- |
||
|} |
|} |
||
+ | </tt> |
||
+ | [[Category:Style]] |
||
− | = Discussion = |
||
− | |||
− | == read and show == |
||
− | |||
− | I think the names <hask>read</hask> and <hask>show</hask> in the Prelude of Haskell98 aren't a good choice |
||
− | because the functions can be considered as natural pair |
||
− | but this isn't reflected by their names. |
||
− | Even more <hask>read</hask> and <hask>show</hask> sound like some I/O operations which they are not. |
||
− | The choice for the Modula-3 libraries (<hask>Lex</hask> and <hask>Fmt</hask>) seems to be more suitable. -- HenningThielemann |
||
− | |||
− | == trees == |
||
− | |||
− | I had a nice discussion the other day with someone about the right name for tree nodes and leaves. The constructors I'm using as a result are <hask>Branch</hask> and <hask>Leaf</hask>. Anyone feel differently? -- BartMassey |
Latest revision as of 22:51, 18 April 2021
Frequently functions appear in pairs like hOpen
and hClose
, read
and show
and so on.
Libraries are a lot easier to use if they use a consistent scheme of names for related functions.
It is even better if many libraries would share the same scheme.
This can be useful both for designing function names and
for easy guessing of the counterpart of some function.
Here is a collection of some pairs of identifiers I stumbled on in AmigaOS, MUI, Modula-3, Haskell libraries, and C++ STL. This could be a basis for further discussion.
It would be great if the discussion lead to a more streamlined collection where for instance some duplicates are removed.
Create Delete New Dispose Construct Destruct Alloc Free Obtain Release Attempt Lock UnLock Procure Vacate Forbid Permit Disable Enable Put Get Set Get Write Read Poke Peek Open Close Save Load Load UnLoad Init Exit Setup Cleanup Show Hide Insert Remove Add Rem Push Pull Push Pop Start Stop Size Begin End Length First Last Number Head Tail Front Back Top Bottom Fmt Lex Input Output