わかめモナ化のLTのネタ作り

とりあえずHaskellのプログラム書いてTypeScriptに移植してみるかーと思ったら全然そんなレベルじゃなかった。
0
前へ 1 2 ・・ 5 次へ
わかめ@毎日猫がいる @vvakame

今、ローカルで動くサーバプログラム書いててNode.js+TypeScriptでやってるけどYesodでもよかったかもしれない。

2012-11-16 18:07:31
わかめ@毎日猫がいる @vvakame

cabal install cabal-install とかいう摩訶不思議なコマンドを打たせられていてる。

2012-11-16 18:11:35
わかめ@毎日猫がいる @vvakame

Not in scope: `hmain' なんじゃいこれ。

2012-11-16 18:17:50
わかめ@毎日猫がいる @vvakame

わー。HaskellでSQLiteのselectができたぞぅ。

2012-11-16 18:23:04
わかめ@毎日猫がいる @vvakame

cabal install sqlite キメたこともメモしておく。

2012-11-16 18:25:14
わかめ@毎日猫がいる @vvakame

http://t.co/Q0vPWdGK openConnection の型とかこのあたりにかいてある。

2012-11-16 18:27:27
わかめ@毎日猫がいる @vvakame

見たいけど見れる時間に帰れるかな…。

2012-11-16 18:29:47
わかめ@毎日猫がいる @vvakame

なんで closeConnection :: SQLiteHandle -> IO () なんだろう? IO () ってなんだろう???

2012-11-16 18:30:41
わかめ@毎日猫がいる @vvakame

IO () はばっちぃものを入れたりした後のウンコなのかな。ウンコ。

2012-11-16 18:31:00
わかめ@毎日猫がいる @vvakame

execStatement :: SQLiteResult a => SQLiteHandle -> String -> IO (Either String [[Row a]]) しっかり IO ついてた。やっぱり IO String から IO は取り出せないんだ!多分。

2012-11-16 18:32:21
わかめ@毎日猫がいる @vvakame

IO () の世界の中では IO String から副作用なしで String が取り出せるように見えるとかそういう感じなのだろうか…。謎だ。わかったような気がしてたけどわかってなかった感スゴイ。

2012-11-16 18:33:33
NaOHaq(苛性ソーダ) @NaOHaq

@vvakame void closeConnection(SQLiteHandle h); みたいなもんだと思ってくだされ

2012-11-16 18:34:09
わかめ@毎日猫がいる @vvakame

do 記法も全然どういう適用になるのかわからん。

2012-11-16 18:36:15
わかめ@毎日猫がいる @vvakame

モナドは頑張ればわかるような気がしなくもないけどIOモナド、テメーはダメだ。

2012-11-16 18:37:56
NaOHaq(苛性ソーダ) @NaOHaq

@vvakame "IO a" (aにはStringとかIntegerとか[b]とかの型が入る)ってのは、返り値の型が a のアクションを表す型なんですけど、返り値がないアクションの場合は "()" (unitと読む)という型をaのところに入れるのです。

2012-11-16 18:38:26
わかめ@毎日猫がいる @vvakame

@NaOHaq なんとなくわかりましたが直感的にはわかってません。

2012-11-16 18:39:27
わかめ@毎日猫がいる @vvakame

IO () とかの中では IO String から String が取り出せたっぽい見た目にすることができるけど、その関数呼ぶとIOが伝染るからIO使わないロジックをごぎごぎ書いて最上位の小さい空間でIOちょびっとだけ使いましょうみたいな話しに違いない。

2012-11-16 18:41:05
NaOHaq(苛性ソーダ) @NaOHaq

@vvakame "IO a" ってのはコンテナみたいなもんだと思ってください。〈(世界全体の状態), a型の値〉 という仮想的なコンテナがあって、〈w0, x〉に対してλz→〈(ここは隠蔽されている), f zというλ式をbindする(>>=)と、〈w1, f x〉が返ります

2012-11-16 18:49:05
わかめ@毎日猫がいる @vvakame

ぐぬぬ処理すると結果が [IO ()] 的な何かになってしまうでござる… mapM ってこういう時に使えば IO () になるんじゃなかったっけ…??

2012-11-16 18:49:06
わかめ@毎日猫がいる @vvakame

@NaOHaq そーすると、 新しい世界全体の状態が得られると思いますが、新しい世界全体の状態のうち変わった部分、を取得する方法がないような気がします?

2012-11-16 18:51:22
前へ 1 2 ・・ 5 次へ