Module DA.Text¶
Functions for working with Text.
Functions¶
- replace
: Text -> Text -> Text -> Text
Replace a subsequence everywhere it occurs. The first argument must not be empty.
- lines
-
Breaks a
Text
value up into a list ofText
’s at newline symbols. The resulting texts do not contain newline symbols.
- words
-
Breaks a ‘Text’ up into a list of words, delimited by symbols representing white space.
- 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.
- wordsBy
: (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
-
intercalate
inserts the text argumentt
in between the items ints
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:
dropSuffix "!" "Hello World!" == "Hello World" dropSuffix "!" "Hello World!!" == "Hello World!" dropSuffix "!" "Hello World." == "Hello World."
- stripSuffix
: 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
- stripPrefix
: Text -> Text -> Optional Text
The
stripPrefix
function drops the given prefix from the argument text. It returnsNone
if the text did not start with the prefix.
- isPrefixOf
-
The
isPrefixOf
function takes two text arguments and returnsTrue
if and only if the first is a prefix of the second.
- isSuffixOf
-
The
isSuffixOf
function takes two text arguments and returnsTrue
if and only if the first is a suffix of the second.
- isInfixOf
-
The
isInfixOf
function takes two text arguments and returnsTrue
if and only if the first is contained, wholly and intact, anywhere within the second.
- takeWhile
: (Text -> Bool) -> Text -> Text
The function
takeWhile
, applied to a predicatep
and a text, returns the longest prefix (possibly empty) of symbols that satisfyp
.
- takeWhileEnd
: (Text -> Bool) -> Text -> Text
The function ‘takeWhileEnd’, applied to a predicate
p
and a ‘Text’, returns the longest suffix (possibly empty) of elements that satisfyp
.
- dropWhile
: (Text -> Bool) -> Text -> Text
dropWhile p t
returns the suffix remaining aftertakeWhile p t
.
- dropWhileEnd
: (Text -> Bool) -> Text -> Text
dropWhileEnd p t
returns the prefix remaining after dropping symbols that satisfy the predicatep
from the end oft
.
- 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 textt
, returns the prefix oft
of lengthn
, ort
itself ifn
is greater than the length oft
.
- drop
-
drop n
, applied to a textt
, returns the suffix oft
after the firstn
characters, or the emptyText
ifn
is greater than the length oft
.
- substring
-
Compute the sequence of symbols of length
l
in the argument text starting ats
.
- isPred
: (Text -> Bool) -> Text -> Bool
isPred f t
returnsTrue
ift
is not empty andf
isTrue
for all symbols int
.
- isAlphaNum
-
isAlphaNum t
isTrue
ift
is not empty and consists only of alphanumeric symbols.
- parseNumeric
: Text -> Optional (Numeric n)
Attempt to parse a
Numeric
value from a givenText
. To getSome
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
- parseDecimal
-
Attempt to parse a
Decimal
value from a givenText
. To getSome
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
- 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.
- 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.