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

とりあえずHaskellのプログラム書いてTypeScriptに移植してみるかーと思ったら全然そんなレベルじゃなかった。
0
前へ 1 ・・ 3 4 次へ
NaOHaq(苛性ソーダ) @NaOHaq

@vvakame mapM は f::a -> IO b を引数にとって、IO [b]を返します。このとき f x は〈w_n,y〉(yは無視される)にbindされて〈w_n+1,z::b〉を返すので、要素それぞれに適用したときのz::bを集めたリストが返ります

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

@NaOHaq 途中よくわかりませんでしたがMaybeモナドとかにmapする時はアンスコ無しのmapM使うとMaybe [a] とかが得られるからそっち使うわー。ってことですね!

2012-11-16 19:23:27
NaOHaq(苛性ソーダ) @NaOHaq

@NaOHaq @vvakame 対して、mapM_ はリストの要素それぞれにa->IO bを適用したときの返り値bの値を全部捨てて、() を返します

2012-11-16 19:23:40
NaOHaq(苛性ソーダ) @NaOHaq

@vvakame すみません、モナド一般の話にするとややこしくなるのでIOに特殊化して話してます。

2012-11-16 19:25:23
NaOHaq(苛性ソーダ) @NaOHaq

@vvakame IOじゃない場所でも使える trace という反則的な関数があります。

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

trace :: String -> a -> a なんでこの子は IOモナドが出てこないの…

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

https://t.co/7e8NRE9v 今コレだけど、 dumpUnknown の層がなんであるのかわからない。なんなのこれ…。SQLのリザルトは行と列の2層あれば十分じゃないの…。

2012-11-16 19:29:41
NaOHaq(苛性ソーダ) @NaOHaq

@vvakame こやつはむっちゃ特殊な関数で、 f x に対して f $ trace ("hoge:"++show x) $ x という風に挟み込んでやると、 f x が評価されるときに "hoge: (xの値)" を端末に出力します

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

@NaOHaq すごい!!! 特殊って、僕らが実装できないくらい特殊ですか?

2012-11-16 19:34:58
NaOHaq(苛性ソーダ) @NaOHaq

@NaOHaq @vvakame ……ということができるんですが、xの値を出力するためには当然そのときxの値が決まっていないといけないので、traceの第一引数は正格評価されます。そのため評価順序が変わることがあるのでややこしいです。

2012-11-16 19:35:40
NaOHaq(苛性ソーダ) @NaOHaq

@vvakame Haskell処理系の中で特別扱いされてます。

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

@NaOHaq なるほど。使う場所をちょっとは選ぶわけですね。

2012-11-16 19:37:25
NaOHaq(苛性ソーダ) @NaOHaq

同じ悩みを発見しました / Unnecessarily deep list in execStatement return type https://t.co/l5RqEBTV / https://t.co/zF2LyJeI

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

あかん。とりあえず型合わせないとコンパイルすら通らないからヤバい。

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

Justな値だけfilterしたい時にどう書けばいいかわからん。(\m -> if Just _ then true else false) みたいに書きたいんだけど。

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

@kakkun61 そのへんの構文を全然オボエテナイという…!なんか1行で書かないといけなかったような気がするんですがそんなことないんでしたっけ。とりあえずぐぐってきます。

2012-11-16 19:53:58
o̞͑kä̝mo̞͑to̞͑ kä̝zʊ̠kɪ̟ @kakkun61

@vvakame それかパターンマッチ使った関数別個に作るか、かなー。

2012-11-16 19:54:01
o̞͑kä̝mo̞͑to̞͑ kä̝zʊ̠kɪ̟ @kakkun61

@vvakame 僕も、基本的にパターンマッチの方使うので case は構文覚えてないです :p

2012-11-16 19:56:11
前へ 1 ・・ 3 4 次へ