#leksah を逆につづると haskel だということにたった今気づいた。
#cabal install leksah としたら
#There is no available version of glib that satisfies >=0.10
#あと gtk gtksourceviews2 も同様。
#Window上で、ghcを使って、sjisファイルを読み上げさせようとして、頓挫しました。
#外部アプリとして、iconv,mecab それに、発声アプリとしては、AquesTalkで提供されてるdllを元に自作したjsayを使いました。
##上で話題なった、たぐい?
#頓挫したのはざんねん
#ここまでできて、ここからこうしたいです、というのを
##一応、GHC 6.10.4 でも入力だけなら haskeline がなんとかしてくれます。と、念のため。
#C:\Documents and Settings\shelarcy>ghci
GHCi, version 6.10.4: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer ... linking ... done.
Loading package base ... linking ... done.
Prelude> length "へろー"
3
Prelude> head "へろー"
'\12408'
#> putStrLn "あいう"
#BDF
#出力の方はダメですよ。
#一応 print 関数を使えば'\xxxxx'という形で出力してくれますが。
#Prelude> print "あいう"
"\12354\12356\12358"
#Prelude System.IO> h <- openFile "dummy.txt" WriteMode
Prelude System.IO> hPrint h "はろー"
Prelude System.IO> hPrint h "あいう"
Prelude System.IO> hClose
#"\12399\12429\12540"
"\12354\12356\12358"
#ghci ってログを取る機能ありますか?
#$HOME/.ghc/ghci_history にコマンドの履歴はたまってるみたい
#デフォルトでは 100 行っぽい。おそらくどっかで変えられると思われる
##なぜつながったし
#Users may customize the interface with a ~/.haskeline file; see http://trac.haskell.org/haskeline/wiki/UserPrefs for more information. #らしいからそれを見ればわかるはずなんだけど重いなあ
##出力のログもと思ったけどそれは無茶ですね。
#tee 使えばいいんでないかな
#それか履歴の内容をもう一度評価し直すとか
#再現するだけなら、ttyrecという手もあるけど。
#wrapperを書けば?
#System.Process.runInteractiveCommand ちゅう娘がいまっせ、だんな > [1..100]>>=pen
#それは扱いやすい娘ですか?
#だんなの調教しだいでんがな。
#付き合ってみないことにはわかりませんな。ちょっと会ってきます。
#$HOME/.haskeline に maxhistorysize: Nothing とか Just 500 とか書けばいいみたいとか遅レス
#haskelineのログはどこにでるの?
#$HOME/.ghc/ghci_history ですね
#評価結果も?
#コマンドだけです
#ちなみにさっき tee したらとか言って自分でやってみたらプロンプトがログに残ってなくて涙目
#なるほど
#@ikegami お誘いありがとうございます。もう少し悪あがきして光が見えたらEntoryします。
#@[1..100]>>=pen 社交的ないい娘ですよ。System.Process.runInteractiveCommand
#遅い昼寝から、今目覚めました。
#jsay は OSX だと saykana っていう名前だった
#なんという罠
#ていうか jsay 自作だったのか、早とちりしてました
#jsay は入力の文字コード sjis なのか
#saykanaも同じ所から出ていたはずです
#jsayは、sjisのコマンド引数を一つ取ります。
#gsayは環境変数渡し版
#生憎Haskell(windows版)
#には、putEnvが無くて、残念でした
#むー、入力をUFT-8で受ける->Shift-Jisに変換->jsayに渡す、っていうふうにやるのはどうでせう
#s/UFT/UTF/
#非 UTF-8 な入力を GHC に渡したときどうなるかよくわからないです(たぶん shelarcy さんがこのあたり詳しいと思われる)
#よしなにしてくれるのかぐちゃぐちゃになってしまうのか(たぶん後者)
#*Main> tr "abc くつ"
"\12360\12540,\12403\12540,\12375\12540,\32314\19978\9661"
*Main> U.putStrLn $ tr "abc くつ"
えー,びー,しー,縺上懿。
#っていうのはたぶん、"abc くつ" は Shift-Jis なんだけどそれが化けちゃってると思われる
#たぶんが多いな
#残念ながらWindows環境では、SJISファイルが、幅を効かせていますから、入力はあえてSJIS限定と言う、いばらの道を選びました。
#emacsのターミナルコードは、utf8を指定してますので、ghciには、utf8なコードが渡っていると思ったのですが、誤解してるかな?
#Prelude> System.IO.UTF8.putStrLn "くつ"
くつ
#とでれば、utf8なコードがわたってるでしょうね。
#というか、内部ではちゃんと意図どおり認識されているというのがただしいか
#入力を SJIS でがんばるならいったん ByteString で読んで decode するのがいいかも
#*Main> System.IO.UTF8.putStrLn "くつ"
Loading package syb ... linking ... done.
Loading package base-3.0.3.1 ... linking ... done.
Loading package bytestring-0.9.1.4 ... linking ... done.
Loading package utf8-string-0.3.5 ... linking ... done.
縺上懿。
GNU Emacs 22.3.1 (i386-mingw-nt5.1.2600) of 2008-09-07 on SOFT-MJASONの
.emacsのコーディングに関する設定は
(set-locale-environment "ja_JP.UTF8")
(set-language-environment "Japanese")
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
デフォルトコーディングが、utf-8なgoshを使って、同じemacsで実験すると
gosh> hoge
"エービーシー"
gosh> (string-append hoge ",くつやさん")
"エービーシー,くつやさん"
#入力を SJIS でがんばるなら.... 乗りかけたので、やってみます。
##encode と decode は毎回どっちがどっちかわかんなくなって上の奴もなんか逆な気がする
#平日にも Haskell ハックで、みんながんばれー(^^
#いっぽう、私はというと、今日はいつもの偏頭痛だったので、休みつつ絵を描いたりしていました
#少し大人になった Haskell たん
##日本語処理がもっとよくなりますように
#Haskell' になるとアホ毛が生えるってとこまで読んだ
#おだいじにー > 偏頭痛
#@nwnさん 私の知らない単語がたくさん出てきて、教材にはうってつけです。しっかり勉強します。ありがとうございました。
#sakae さんや nwn さんは、Haskell 歴何年くらいなんですか? もしよかったらおしえてください
#えーと、Real World Haskell を読んでたのが去年くらいだから 1 年くらい
#こたえてくれてありがとうー、なるほど
#RWH を読み終わったちょうどくらいに GHC-6.10 が出て base が 4 になってたり Exception の API が変わってたりでびびってたです
#あと Haskell を始めたのは ikegami さんが /usr/bin/* を Haskell で置き換えたっていうのを呼んだのがきっかけだったりします
#そのあといろいろとチュートリアルをあさって、モナドわかんねーってなってるときに RWH のベータが出たから wget でミラー作って読んでた
#s/呼んだ/読んだ/
#うは
#あれは April Fool (/usr/bin のはなし)
#しかし不思議な縁もあるものだ
#たちあがりめちゃはや!
#アホなことこそ、書いておくべきなんだなあ(これは家訓にしよう)