タグ

ブックマーク / soutaro.hatenablog.com (3)

  • オフサイドルールの処理 - soutaroブログ

    予習編.たまーに,YAMLのパーサとか欲しくなるんだけど,インデントの処理をどうやったら良いのかよくわからなくなって困っていたんだけど,勉強になった. Haskell 98 Syntaxにこと細かに書いてあるので,適当に実装してみた. http://svn.soutaro.com/has/tags/offside-rulesにありますので,適当にチェックアウトして,ocaml-3.10とかfindlibとかextlibとかインストールしたうえでmakeしたらできます.標準入力からHaskellプログラムを読み込んで,オフサイドルールを処理したやつ,つまり適当に{}とか;とか追加したトークン列を出力します. let fac3 0 = 1 fac3 n | n > 0 = n * fac (n-1) みたいのが, { let { fac3 0 = 1; fac3 n | n > 0 = n *

    オフサイドルールの処理 - soutaroブログ
    jjzak
    jjzak 2008/01/26
    OCaml での Haskellオフサイドルールの処理
  • 正規表現からその正規表現にマッチするような例を生成する - soutaroブログ

    当にやりたいことは、 型から、その型を持つようなRubyプログラムを生成するなんだけど(というかこれはHaskell界隈の人が喜んでやってるやつだよな、つまんね)、とりあえず正規表現で考えてみてた。 正規表現は有限状態オートマトンになるわけで、ループがあるとやだなぁ、とか考えてたんだけど、研究室の後輩(オートマトン屋さん)に相談してみたら、少なくとも正規表現に限定してしまえば簡単になると言われた。確かに、よく考えてみれば、ループがある場合は*とかで明示されてる。そういうわけで30分くらいで作ったプログラム。 実行例: $ ruby regen.rb /red|blue|green|(#[01234567890ABCDEF][01234567890ABCDEF][01234567890ABCDEF][01234567890ABCDEF][01234567890ABCDEF][0123456

    正規表現からその正規表現にマッチするような例を生成する - soutaroブログ
  • rubydep - soutaroブログ

    http://soutaro.com/rubydep-20060628.tgz Rubyソースコードを解析して、クラス・モジュール間の依存関係を出力します。 画像ファイルは、去年TAをやっているときに作った「レポートのプログラムをメールで提出してもらって、適当にユニットテストを走らせて、正否を返信するプログラム」の依存関係です。読めん。 依存しているとみなすのは クラスを明示的に継承している場合 モジュールをincludeしている場合 クラス・モジュールのメソッドを呼び出している場合 です。リテラルは全て無視します。プログラム中でclassやmoduleの構文で定義されたもの意外は無視します。 OCamlとextlibとfindlibと、あともちろんRubyが必要です。 $ cd nodedump $ ruby extconf $ make $ cd ../src $ make $ cd

  • 1