2006-05-30から1日間の記事一覧

Java5で関数型パーザーを書くとしたら

実装は省きますが、 id:bellbind:20060530:1148969152 をJava5でそのまま実装するとしたら、以下のような感じでしょう。 class PState interface Parser interface Func public Parser run(indata data) class ParserBind implements Parser public ParserBi…

正しく動く JavaScript版 Parser

id:bellbind:20060529:1148843131 のコード設計で正しい文字列APIを使うようにして、さらに id:bellbind:20060530:1148941763 の識別子と対応付けたバージョン var PState = function (code, pos, result) { this.codeField = code; this.posField = pos; th…

JavaScript版stringParser

上のコードはMonadを利用して作ったstringParserが入ってます。 stringParser [] = do return [] stringParser (ch:t) = do result <- charParser ch results <- stringParser t return (result:results) これをJavaScript版で作るとしたら以下のようになる…

JavaScript版に対応させるHaskellでのParser実装

昨日のJavaScriptでの関数型パーザー( id:bellbind:20060529:1148843131 )を、きちんとする際、同等のHaskellコードと対応付けて説明を書こうと思った。両方作るんだけど、型の問題とかあるので、先にHaskellでParserを実装してみた。 data PState result = …

はてなダイアリーの編集のテキストエリアの幅は70じゃなくて81,2はほしいよ。 →編集設定をクラッシクにしたら80になってた。OK