For the Char data-type, how do I specify that I want to use the Turkish i instead of the English i for the toLower and toUpper functions?
The character type Char is an enumeration whose values represent Unicode (or equivalently ISO 10646) characters.
You can use Data. Char. isAlpha to check that character is alphabet symbol.
A character literal in Haskell has type Char . To convert a Char to or from the corresponding Int value defined by Unicode, use toEnum and fromEnum from the Enum class respectively (or equivalently ord and chr ).
text and the text-icu package
As of 2011, your best bet is to use the text package, and the toLower
function of the Text ICU package, which supports Char
operations parameterized by a locale,
From this example:
import Data.Text (pack, unpack) import Data.Text.ICU (LocaleName(Locale), toLower) main = do let trLocale = Locale "tr-TR" upStr = "ÇIİĞÖŞÜ" lowStr = unpack $ toLower trLocale $ pack upStr putStrLn $ "toLower " ++ upStr ++ " gives " ++ lowStr
Running this:
> toLower ÇIİĞÖŞÜ gives çıiğöşü
while this example converts between String
, you can also just leave the data in text
format.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With