トップ «前の日記(2014-05-29 (Thu)) 最新 次の日記(2014-06-08 (Sun))» 編集

uDiary

海野秀之(うんのひでゆき)の外部記憶

Twitter (twilog) / RSS / アンテナ / ぶくま

2006|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|08|
2010|01|02|03|05|06|07|10|11|
2011|03|08|
2012|02|04|07|08|10|
2013|01|02|03|05|06|08|11|12|
2014|01|02|05|06|07|08|09|12|
2015|01|02|03|04|

2014-06-07 (Sat)

[Haskell] Monadic Parser Example

https://github.com/unnohideyuki/monadic_parser_sample

Alex と Haskell Happy で monadic parser をつくってみる演習は、予定していたものを一応つくれた。

ex2 から ex4 まで、それぞれ自分なりに得るものはあったので、もう少しコードをきれいにするのといっしょに、ポイントを書き留める作業はしたい。

ex4 は、まじめに Haskell の文法を解析するのではなく、レイアウト規則を実現するための最低限の grammar を記述したので、"-};" がコメントの最後と認識されなかったりするが、今回は、これでいいことにする。

[Haskell][Tiger] Modern Compiler Implementation in ML

https://github.com/unnohideyuki/Tiger-in-Haskell

Tiger Book を Haskell でやる遊びは、6章まで来た。

Tiger Book でも、6章あたりのコードは、ML の破壊的代入を活用したコードになっているので、Haskell で書くにあたっては、状態を明に引き回す必要がある。

chap6/Semant.hs にある transExp, transDec は level と temp を受け渡しするように改造して、改造後も chap5 と同じ型検査結果となるところまで確認。

  • chap5 では評価が遅延されて検出されなかったエラーが chap6 では検出になったものあり
  • chap5 で fmap でリストを巡っていた箇所を、モナド処理にするために foldl にしてしまって、リストを逆順にしてしまう失敗をした。そこはfoldr にしたが、正格版 foldr' でよかったかも。
  • 改造時には、まず型宣言を目標の形に書き換えてから、すこしずつ変えていくのがよかった。型推論すてき。
  • 最近 LAMY の万年筆をつかうようになって、勉強ノート書くのが楽しくなった。

など。

あとは、TL.allocLocal やら TL.newLevel を適切に呼んでやればいい。(それができる状態にはなった)

tDiary アップデート

tDiary 2.2.1 + Ruby 1.8.7 だったのを、tDiary 4.0.4 + Ruby 2.1.2-p95 にアップデートした。

一挙にやったら文字化けしたので、tDiary 3.0.1 をはさんで、データ移行した。

これから、markdown 記法のやつ入れよう。

ん? いま、Insecure operation - encode!って出たな。

よくわからないけど、security がらみっぽいので、tdiary.conf で @secure = false となっていたのを、true にしてみた。

なんとなく、余計に厳しくなって、ダメそうなんだが…。

いけた。

github-markdown 0.6.5 いれた

@tDiary教えてもらったやつ。

おお、@tDiary って書いたら、twitter アカウントへのリンクにもなるんだ。

本日のツッコミ(全3件) [ツッコミを入れる]
# うんの (2014-06-07 (Sat) 12:57)

状態を引き回すには、状態モナドがいいのかなとなんとなく思うんだけど、はてな? 自分の引き出しに状態モナドが入っていないことを実感。

# うんの (2014-06-07 (Sat) 12:58)

あまり自分でつかう機会がなかった、fold は、今回よくつかっている。オレオレ再帰関数ではなく、適切に fold したほうがよいという話だし。

# うんの (2014-06-07 (Sat) 22:27)

ためしに、tdiary.conf で @secure = true にしてみた。<br>どうだ?


2006|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|08|
2010|01|02|03|05|06|07|10|11|
2011|03|08|
2012|02|04|07|08|10|
2013|01|02|03|05|06|08|11|12|
2014|01|02|05|06|07|08|09|12|
2015|01|02|03|04|
Categories 3imp | Card | Cutter | Dalvik | Euler | Football | GAE/J | Hand | Haskell | Re:View | Ruby | Scheme | TQD | Tiger | TigerBook読 | UikiTeXi | Verilog | Violin | Web | parconc | tDiary | お勉強 | エントロピー | ツン読 | | 将棋 | 政治について | | 模写してみよう | 確率論 | 設定など | 雑文 | 音声