Where to put stuff
This is really just a listing of all the tables that exist now or will exist in the future.
- mc: The only things that go directly in the 'mc' root table are (a) functions related directly to the library itself, or (b) common functions that don't fit elsewhere.
- mc.logic: Functions used for logic. Really, the best indicator of what goes there is what's in there now.
- mc.ops: This table will contain functions that wrap every operator - i.e. 'add', 'div', 'lt', 'ge', etc.
- mc.tty: Functions for console input and output.
- math: Anything dealing with numbers goes in 'math'. For specialized equations and the like, use subsections like 'math.alg' for algebra, 'math.geom' for geometry, 'math.trig' for trigonometry, etc.
- math.conv: Unit conversions will go here once implemented.
- string: Functions used directly on strings. Anything directly in here is a "string method": i.e. can be called using 's:func()'.
- table: Functions directly in here are used only on array-type tables - tables with only sequential numeric keys. (This was done to match the style of the original 'table' table.) Other types of tables have subtables.
- table.hash: Functions for use on generic, hash-type tables - tables with varying keys not intended to be used in order.
- table.meta: Convenience functions for accessing and manipulating metatables.