Skip to main content

DA.Text

Functions for working with Text.

Module Snapshot

Lifecycle

Stable.

Notices

Status: active Introduced in: 3.4.9 Removed in: - Warnings: 0 Deprecations: 0 Deprecated since: -

Functions

explode

implode

isEmpty

Test for emptiness.

isNotEmpty

Test for non-emptiness.

length

Compute the number of symbols in the text.

trim

Remove spaces from either side of the given text.

replace

Replace a subsequence everywhere it occurs. The first argument must not be empty.

lines

Breaks a Text value up into a list of Text’s at newline symbols. The resulting texts do not contain newline symbols.

unlines

Joins lines, after appending a terminating newline to each.

words

Breaks a ‘Text’ up into a list of words, delimited by symbols representing white space.

unwords

Joins words using single space symbols.

linesBy

A variant of lines with a custom test. In particular, if there is a trailing separator it will be discarded.

wordsBy

A variant of words with a custom test. In particular, adjacent separators are discarded, as are leading or trailing separators.

intercalate

intercalate inserts the text argument t in between the items in ts and concatenates the result.

dropPrefix

dropPrefix drops the given prefix from the argument. It returns the original text if the text doesn’t start with the given prefix.

dropSuffix

Drops the given suffix from the argument. It returns the original text if the text doesn’t end with the given suffix. Examples:

stripSuffix

Return the prefix of the second text if its suffix matches the entire first text. Examples:

stripPrefix

The stripPrefix function drops the given prefix from the argument text. It returns None if the text did not start with the prefix.

isPrefixOf

The isPrefixOf function takes two text arguments and returns True if and only if the first is a prefix of the second.

isSuffixOf

The isSuffixOf function takes two text arguments and returns True if and only if the first is a suffix of the second.

isInfixOf

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.

takeWhile

The function takeWhile, applied to a predicate p and a text, returns the longest prefix (possibly empty) of symbols that satisfy p.

takeWhileEnd

The function ‘takeWhileEnd’, applied to a predicate p and a ‘Text’, returns the longest suffix (possibly empty) of elements that satisfy p.

dropWhile

dropWhile p t returns the suffix remaining after takeWhile p t.

dropWhileEnd

dropWhileEnd p t returns the prefix remaining after dropping symbols that satisfy the predicate p from the end of t.

splitOn

Break a text into pieces separated by the first text argument (which cannot be empty), consuming the delimiter.

splitAt

Split a text before a given position so that for 0 <= n <= length t, length (fst (splitAt n t)) == n.

take

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

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.

substring

Compute the sequence of symbols of length l in the argument text starting at s.

isPred

isPred f t returns True if t is not empty and f is True for all symbols in t.

isSpace

isSpace t is True if t is not empty and consists only of spaces.

isNewLine

isSpace t is True if t is not empty and consists only of newlines.

isUpper

isUpper t is True if t is not empty and consists only of uppercase symbols.

isLower

isLower t is True if t is not empty and consists only of lowercase symbols.

isDigit

isDigit t is True if t is not empty and consists only of digit symbols.

isAlpha

isAlpha t is True if t is not empty and consists only of alphabet symbols.

isAlphaNum

isAlphaNum t is True if t is not empty and consists only of alphanumeric symbols.

parseInt

Attempt to parse an Int value from a given Text.

parseNumeric

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:

parseDecimal

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:

sha256

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.

reverse

Reverse some Text.

toCodePoints

Convert a Text into a sequence of unicode code points.

fromCodePoints

Convert a sequence of unicode code points into a Text. Raises an exception if any of the code points is invalid.

asciiToLower

Convert the uppercase ASCII characters of a Text to lowercase; all other characters remain unchanged.

asciiToUpper

Convert the lowercase ASCII characters of a Text to uppercase; all other characters remain unchanged.