=pod =encoding utf8 =head1 NAME Muldis::D::Ext::Text - Muldis D extension for character string data types and operators =head1 VERSION This document is Muldis::D::Ext::Text version 0.22.1. =head1 PREFACE This document is part of the Muldis D language specification, whose root document is L; you should read that root document before you read this one, which provides subservient details. =head1 DESCRIPTION Muldis D has a mandatory core set of system-defined (eternally available) entities, which is referred to as the I or the I; they are the minimal entities that all Muldis D implementations need to provide; they are mutually self-describing and are used to bootstrap the language; any entities outside the core, called I, are non-mandatory and are defined in terms of the core or each other, but the reverse isn't true. This current C document describes the system-defined I, which consists of character string data types and operators, essentially all the generic ones that a typical programming language should have, but for the bare minimum needed for bootstrapping Muldis D, which are defined in the language core instead. This current document does not describe the polymorphic operators that all types, or some types including core types, have defined over them; said operators are defined once for all types in L. I =head1 TYPE SUMMARY Also for convenience are the regular set|maybe|seq|bag types C. I =head1 SYSTEM-DEFINED TEXT-CONCERNING DATA TYPES =item C A C<(Set|Maybe|Seq|Bag)OfText> is a completely defined proper subtype of C<(Set|Maybe|Seq|Bag)> whose C attribute has a declared type of a C subtype. =head1 SYSTEM-DEFINED TEXT-CONCERNING FUNCTIONS These functions implement commonly used character string operations. =over =item C This function results in the catenation of the N element values of its argument; it is a reduction operator that recursively takes each consecutive pair of input values and catenates (which is associative) them together until just one is left, which is the result. If C has zero values, then C results in the empty string value, which is the identity value for catenate. =item C This function results in the catenation of C instances of C. =item C This function results in the length of its argument in Unicode Normalization Form D graphemes. =item C This function results in the length of its argument in Unicode Normalization Form C graphemes. =item C This function results in the length of its argument in Unicode Normalization Form D code points. =item C This function results in the length of its argument in Unicode Normalization Form C code points. =item C This function results in C iff its C argument is a substring of its C argument as per the optional C and C constraints, and C otherwise. If C or C are C, then C must occur right at the start or end, respectively, of C in order for C to result in C; if either flag is C, its additional constraint doesn't apply. =item C This function is exactly the same as C except that it results in the opposite boolean value when given the same arguments. =item C This function results in the transformation of its argument where any letters considered to be (small) lowercase are folded to (capital) uppercase. =item C This function results in the transformation of its argument where any letters considered to be (capital) uppercase are folded to (small) lowercase. =item C This function results in the value of its argument but that any leading or trailing whitespace characters are trimmed. =back =head1 SEE ALSO Go to L for the majority of distribution-internal references, and L for the majority of distribution-external references. =head1 AUTHOR Darren Duncan (C) =head1 LICENSE AND COPYRIGHT This file is part of the formal specification of the Muldis D language. Muldis D is Copyright © 2002-2008, Darren Duncan. See the LICENSE AND COPYRIGHT of L for details. =head1 TRADEMARK POLICY The TRADEMARK POLICY in L applies to this file too. =head1 ACKNOWLEDGEMENTS The ACKNOWLEDGEMENTS in L apply to this file too. =cut