Dependencies: lib_2da, lib_anon, lib_array, lib_fn, lib_ini, lib_sfo, lib_struct, lib_sugar, lib_tools
math_transitive_closure(relation:s)=(relation:a) dimorphic
Given a 2 place relation defined by a 2D array s.t. array(k,v)=1 iff Rkv, construct its transitive closure.
math_traverse_directories(directory:s)=(array:a) action
Given a directory, recursively return itself and its subdirectories and their subdirectories, etc. as an array in k=>_ form
math_traverse_graph(max_iterations:i=1000, silent:b, telemetry:b, start:s, relates_to:f, parameter:s)=(visited_nodes:a) dimorphic
Given: - a string 'start' - an action function 'relates_to' that maps strings ('arguments') to arrays of strings 'array', and takes an optional argument 'parameter'
return an array 'visited_nodes' of all strings connected to the original string by the transitive closure of the 'relates_to' relation.
Gives up after 'max_iterations' iterations. Set silent to 1 to be told when it's finished, and telemetry to 1 to get a bit more information.
tc_helper(arguments:s, parameter:s)=(array:a) action
These should not be called from outside the library itself.
get_subdirectories_helper(arguments:s, parameter:s)=(array:a) action