Shiptest 13 - Modules - TypesDefine Details

code/__HELPERS/_lists.dm

LAZY_LISTS_ORORs two lazylists together without inserting errant nulls, returning a new list and not modifying the existing lists.
LAZYORASSOCLISTPerforms an insertion on the given lazy list with the given key and value. If the value already exists, a new one will not be made.
COMPARE_KEYPassed into BINARY_INSERT to compare keys
COMPARE_VALUEPassed into BINARY_INSERT to compare values
BINARY_INSERTBinary search sorted insert INPUT: Object to be inserted LIST: List to insert object into TYPECONT: The typepath of the contents of the list COMPARE: The object to compare against, usualy the same as INPUT COMPARISON: The variable on the objects to compare COMPTYPE: How should the values be compared? Either COMPARE_KEY or COMPARE_VALUE.
/proc/expand_weights Takes a weighted list (see above) and expands it into raw entries This eats more memory, but saves time when actually picking from it
/proc/greatest_common_factor Takes a list of numbers as input, returns the highest value that is cleanly divides them all Note: this implementation is expensive as heck for large numbers, I only use it because most of my usecase Is < 10 ints
/proc/pick_n_take Pick a random element from the list and remove it from the list.
/proc/bitfield_to_list Converts a bitfield to a list of numbers (or words if a wordlist is provided)
/proc/find_record Returns datum/data/record

Define Details

BINARY_INSERT

Binary search sorted insert INPUT: Object to be inserted LIST: List to insert object into TYPECONT: The typepath of the contents of the list COMPARE: The object to compare against, usualy the same as INPUT COMPARISON: The variable on the objects to compare COMPTYPE: How should the values be compared? Either COMPARE_KEY or COMPARE_VALUE.

COMPARE_KEY

Passed into BINARY_INSERT to compare keys

COMPARE_VALUE

Passed into BINARY_INSERT to compare values

LAZYORASSOCLIST

Performs an insertion on the given lazy list with the given key and value. If the value already exists, a new one will not be made.

LAZY_LISTS_OR

ORs two lazylists together without inserting errant nulls, returning a new list and not modifying the existing lists.