Data.CharのisAlphaはマルチバイト文字を正しく扱えない

Posted on 2017/01/31
Tags: Haskell

 isAlphaNumも同様。
まじ注意。

Prelude> import Data.Char
Prelude Data.Char> isAlpha 'あ'
True
Prelude Data.Char> isAlphaNum 'あ'
True

これを定義しておけばいいんだけど、他にどっかData.Text以下あたりでexportしてないかなー。

isAlpha' :: Char -> Bool
isAlpha' c = c `elem` ['A'..'Z']
          || c `elem` ['a'..'z']

isAlphaNum' :: Char -> Bool
isAlphaNum' c = c `elem` ['A'..'Z']
             || c `elem` ['a'..'z']
             || c `elem` ['0'..'9']


この記事はこちらから修正リクエストを送ることができます。
Data.CharのisAlphaはマルチバイト文字を正しく扱えない - github
ゴミ箱ボタンの左にある、鉛筆ボタンを押してね!