==================================================================== Character Class ==================================================================== The CharacterClass domain allows classes of characters to be defined and manipulated efficiently. Character classes can be created by giving either a string or a list of characters. :: cl1:=charClass[char "a",char "e",char "i",char "o",char "u",char "y"] "aeiouy" Type: CharacterClass cl2 := charClass "bcdfghjklmnpqrstvwxyz" "bcdfghjklmnpqrstvwxyz" Type: CharacterClass A number of character classes are predefined for convenience. :: digit() "0123456789" Type: CharacterClass hexDigit() "0123456789ABCDEFabcdef" Type: CharacterClass upperCase() "ABCDEFGHIJKLMNOPQRSTUVWXYZ" Type: CharacterClass lowerCase() "abcdefghijklmnopqrstuvwxyz" Type: CharacterClass alphabetic() "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" Type: CharacterClass alphanumeric() "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" Type: CharacterClass You can quickly test whether a character belongs to a class. :: member?(char "a", cl1) true Type: Boolean member?(char "a", cl2) false Type: Boolean Classes have the usual set operations because the CharacterClass domain belongs to the category FiniteSetAggregate(Character). :: intersect(cl1, cl2) "y" Type: CharacterClass union(cl1,cl2) "abcdefghijklmnopqrstuvwxyz" Type: CharacterClass difference(cl1,cl2) "aeiou" Type: CharacterClass intersect(complement(cl1),cl2) "bcdfghjklmnpqrstvwxz" Type: CharacterClass You can modify character classes by adding or removing characters. :: insert!(char "a", cl2) "abcdfghjklmnpqrstvwxyz" Type: CharacterClass remove!(char "b", cl2) "acdfghjklmnpqrstvwxyz" Type: CharacterClass See Also: * ``)help Character`` * ``)help String`` * ``)show CharacterClass``