DA.Text
DA.Text
Functions for working with Text.
Functions
explode implode isEmptyTest for emptiness.
isNotEmptyTest for non-emptiness.
lengthCompute the number of symbols in the text.
trimRemove spaces from either side of the given text.
replace: Text -> Text -> Text -> Text
Replace a subsequence everywhere it occurs. The first argument must not be empty.
linesBreaks a Text value up into a list of Text’s at newline
symbols. The resulting texts do not contain newline symbols.
Joins lines, after appending a terminating newline to each.
wordsBreaks a ‘Text’ up into a list of words, delimited by symbols representing white space.
unwordsJoins words using single space symbols.
linesBy: (Text -> Bool) -> Text -> [Text]
A variant of lines with a custom test. In particular, if there
is a trailing separator it will be discarded.
: (Text -> Bool) -> Text -> [Text]
A variant of words with a custom test. In particular, adjacent
separators are discarded, as are leading or trailing separators.
intercalate inserts the text argument t in between the items
in ts and concatenates the result.
dropPrefix drops the given prefix from the argument. It returns
the original text if the text doesn’t start with the given prefix.
Drops the given suffix from the argument. It returns the original text if the text doesn’t end with the given suffix. Examples:
dropSuffix "!" "Hello World!" == "Hello World"
dropSuffix "!" "Hello World!!" == "Hello World!"
dropSuffix "!" "Hello World." == "Hello World."
: Text -> Text -> Optional Text
Return the prefix of the second text if its suffix matches the entire first text. Examples:
stripSuffix "bar" "foobar" == Some "foo"
stripSuffix "" "baz" == Some "baz"
stripSuffix "foo" "quux" == None
: Text -> Text -> Optional Text
The stripPrefix function drops the given prefix from the
argument text. It returns None if the text did not start with
the prefix.
The isPrefixOf function takes two text arguments and returns
True if and only if the first is a prefix of the second.
The isSuffixOf function takes two text arguments and returns
True if and only if the first is a suffix of the second.
The isInfixOf function takes two text arguments and returns
True if and only if the first is contained, wholly and intact,
anywhere within the second.
: (Text -> Bool) -> Text -> Text
The function takeWhile, applied to a predicate p and a text,
returns the longest prefix (possibly empty) of symbols that satisfy
p.
: (Text -> Bool) -> Text -> Text
The function ‘takeWhileEnd’, applied to a predicate p and a
‘Text’, returns the longest suffix (possibly empty) of elements
that satisfy p.
: (Text -> Bool) -> Text -> Text
dropWhile p t returns the suffix remaining after takeWhile p t.
: (Text -> Bool) -> Text -> Text
dropWhileEnd p t returns the prefix remaining after dropping
symbols that satisfy the predicate p from the end of t.
Break a text into pieces separated by the first text argument (which cannot be empty), consuming the delimiter.
splitAtSplit a text before a given position so that for 0 <= n <= length t,
length (fst (splitAt n t)) == n.
take n, applied to a text t, returns the prefix of t of
length n, or t itself if n is greater than the length of t.
drop n, applied to a text t, returns the suffix of t after
the first n characters, or the empty Text if n is greater
than the length of t.
Compute the sequence of symbols of length l in the argument
text starting at s.
: (Text -> Bool) -> Text -> Bool
isPred f t returns True if t is not empty and f is True
for all symbols in t.
isSpace t is True if t is not empty and consists only of
spaces.
isSpace t is True if t is not empty and consists only of
newlines.
isUpper t is True if t is not empty and consists only of
uppercase symbols.
isLower t is True if t is not empty and consists only of
lowercase symbols.
isDigit t is True if t is not empty and consists only of
digit symbols.
isAlpha t is True if t is not empty and consists only of
alphabet symbols.
isAlphaNum t is True if t is not empty and consists only of
alphanumeric symbols.
Attempt to parse an Int value from a given Text.
: NumericScale n => Text -> Optional (Numeric n)
Attempt to parse a Numeric value from a given Text.
To get Some value, the text must follow the regex
(-|\+)?[0-9]+(\.[0-9]+)?
In particular, the shorthands ".12" and "12." do not work,
but the value can be prefixed with +.
Leading and trailing zeros are fine, however spaces are not.
Examples:
parseNumeric "3.14" == Some 3.14
parseNumeric "+12.0" == Some 12
Attempt to parse a Decimal value from a given Text.
To get Some value, the text must follow the regex
(-|\+)?[0-9]+(\.[0-9]+)?
In particular, the shorthands ".12" and "12." do not work,
but the value can be prefixed with +.
Leading and trailing zeros are fine, however spaces are not.
Examples:
parseDecimal "3.14" == Some 3.14
parseDecimal "+12.0" == Some 12
Computes the SHA256 hash of the UTF8 bytes of the Text, and returns it in its hex-encoded
form. The hex encoding uses lowercase letters.
This function will crash at runtime if you compile Daml to Daml-LF < 1.2.
reverseReverse some Text.
reverse "Daml" == "lmaD"
Convert a Text into a sequence of unicode code points.
Convert a sequence of unicode code points into a Text. Raises an
exception if any of the code points is invalid.
Convert the uppercase ASCII characters of a Text to lowercase;
all other characters remain unchanged.
Convert the lowercase ASCII characters of a Text to uppercase;
all other characters remain unchanged.