FIND-BEST-SPLIT (STRINGS TO-CHECK)
Iterate over all the indices left to check to find which index (and which character) to test for equality with, keeping the ones which result in the most balanced split.
HASH-TABLE->LIST (TABLE &KEY (KEEP-KEYS T) (KEEP-VALUES T))
Saves the keys and/or values in table to a list. As with hash table iterating functions, there is no implicit ordering.
SPLIT (LIST &KEY (TEST 'EQL) (KEY 'IDENTITY))
Splits input list into sublists of elements whose elements are all such that (key element) are all test. It's assumed that test and key form an equality class. (This is similar to groupBy)
SPLIT-AT (LIST N)
Split list in k lists of n elements (or less for the last list)
ALL-EQUAL (LIST &KEY (KEY 'IDENTITY) (TEST 'EQL))
EMIT-COMMON-CHECKS (STRINGS TO-CHECK)
EMIT-STRING-CASE (CASES INPUT-VAR NO-MATCH)
MAKE-SEARCH-TREE (STRINGS BODIES TO-CHECK)
NUMERIC-CHAR= (X Y)
STRING-CASE ((STRING &KEY (DEFAULT '(ERROR No match))) &BODY CASES)
(string-case (string &key default) case*) case ::= string form* | t form* Where t is the default case.
Symbol of the variable holding the input string
Form to insert when no match is found.