Haskellの文字列型
3つある
String
ByteString型
Data.Text
Text (Strict)
Text (Lazy)
String型
Unicodeを表す
Charのリスト
type String = [Char]
リストなので遅い
1文字で5ワードを占めるのでメモリを食う
https://qiita.com/autotaker1984/items/301ecac1fac0cbae0215#string型が遅い
Unicodeかバイト文字列かに大別できる
table:a
Unicode文字列 バイト文字列
String [Word8]
(strict/lazy) Text (strict/lazy) ByteString
ShortText ShortByteString
ByteString→Stringはどうすればいいのか
#??
変換
string.drawio
drawioで見れる
クソ雑だが
VScodeで開けるmrsekut.icon
日本語の扱いを全然理解できていない
https://gist.github.com/tomoyat1/1da017384700b9468d036a0c61202300
http-conduit#611e5b341982700000391092
https://foobardam.hatenablog.com/entry/2012/10/22/125452
難しいmrsekut.icon
文字コードをちゃんと理解していない、というのもある
関連
OverloadedStrings
参考
https://hasufell.github.io/posts/2024-05-07-ultimate-string-guide.html
網羅的な解説
新しいものも載っている
Haskellの文字列型:分類と特徴 - Qiita
String, Text, ByteStringの差異について
いくつかの切り口での分類
http://bicycle1885.hatenablog.com/entry/2012/12/24/234707
https://qiita.com/satosystems/items/e07e9907e4da9ab853fc
相互の変換など
https://qiita.com/mod_poppo/items/80c442a1d95471e6ac55
https://free.cofree.io/2020/05/06/string-types/
https://qiita.com/mod_poppo/items/88a6e876efbf7183209a
変換や依存関係の図がわかりやすい