Common Lisp Package: STRING-CASE

README:

FUNCTION

Private

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)

Undocumented

ALL-EQUAL (LIST &KEY (KEY 'IDENTITY) (TEST 'EQL))

EMIT-COMMON-CHECKS (STRINGS TO-CHECK)

EMIT-STRING-CASE (CASES INPUT-VAR NO-MATCH)

IOTA (N)

MAKE-SEARCH-TREE (STRINGS BODIES TO-CHECK)

NUMERIC-CHAR= (X Y)

MACRO

Public

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.

VARIABLE

Private

*INPUT-STRING*

Symbol of the variable holding the input string

*NO-MATCH-FORM*

Form to insert when no match is found.