関数型プログラミング ..
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
4:デフォルトの名無しさん 08/05/17 16:43:00 ・日本語の扱いについて Haskell98によると、Charは一つのUnicode文字を表す(6.1.2)。 これに従って、比較的新しいHugsやGHC(6.4系を含む)ではCharは32ビット整数になっている。 ただし、どちらも入出力に際しての変換が完全でない。具体的には、 ・ソースコード中の文字列リテラル ・System.IOライブラリでの入出力 が問題になる。 1. GHC6.4.2以前 ソースコード・入出力ともLatin-1を仮定する。Latin-1ではバイト値と コードポイントが一致するので、入力時には外部エンコードの各バイトがそのままCharに 入り、出力時にはCharの下位8ビットのみが出力されるような実装になっている。 このため、あるエンコーディング(Latin-1とは限らない)の入力をgetLineで受け取り、 それをそのままputStrで表示すれば、入力時とおなじエンコードにおいて正しく表示される。 これを利用して、[Char]を、本来のコードポイントの列としてではなく、特定のエンコードの下での バイト列として使うことができる。ただし文字列リテラルについては、GHCはLatin-1として 不正な文字を受け付けないので、EUC-JPのような例外を除くと、単純にリテラルを使うことはできない。 2. GHC6.6 ソースコードにはUTF-8、入出力にはLatin-1を仮定する。このため、EUC-JPでリテラルを直に 書くことはできない。 (続く)
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5222日前に更新/225 KB
担当:undef