ansible/dhall/Prelude/Text/lowerASCII.dhall

57 lines
1.6 KiB
Text
Raw Normal View History

2024-11-26 05:55:44 +00:00
{-|
Lowercase all ASCII characters
Note that this will also lowercase decomposed Unicode characters that contain
codepoints in the ASCII range
-}
let lowerASCII
: Text → Text
= List/fold
(Text → Text)
[ Text/replace "A" "a"
, Text/replace "B" "b"
, Text/replace "C" "c"
, Text/replace "D" "d"
, Text/replace "E" "e"
, Text/replace "F" "f"
, Text/replace "G" "g"
, Text/replace "H" "h"
, Text/replace "I" "i"
, Text/replace "J" "j"
, Text/replace "K" "k"
, Text/replace "L" "l"
, Text/replace "M" "m"
, Text/replace "N" "n"
, Text/replace "O" "o"
, Text/replace "P" "p"
, Text/replace "Q" "q"
, Text/replace "R" "r"
, Text/replace "S" "s"
, Text/replace "T" "t"
, Text/replace "U" "u"
, Text/replace "V" "v"
, Text/replace "W" "w"
, Text/replace "X" "x"
, Text/replace "Y" "y"
, Text/replace "Z" "z"
]
Text
(λ(replacement : Text → Text) → replacement)
let example0 = assert : lowerASCII "ABCdef" ≡ "abcdef"
let -- This does not lowercase precomposed Unicode characters
--
-- • The `Á` in the following example is U+00C1
example1 =
assert : lowerASCII "Á" ≡ "Á"
let -- … but this does lowercase decomposed Unicode characters
--
-- • The `Á` in the following example is U+0041 U+0301
-- • The `á` in the following example is U+0061 U+0301
example1 =
assert : lowerASCII "Á" ≡ "á"
in lowerASCII