2010-11-14から1日間の記事一覧

パターンマッチングの実装(2)

Rowlの動的なパターンマッチエンジンの構成について書きます。 まず、インタプリタ内にfuntableという関数テーブル(関数名 × 引数の数 → 関数実体)があります。 関数の実体は 関数本体(バイトコード) 関数定義のリスト(ASTではなくコンパイルした形) からな…

追記

以下の記事の「ブロックローカルで関数定義を再定義できる」という仕組みには問題がありましたのでやめることにしました。 何か別の形で矛盾なく同様の機能が使えるようにしたいと思います。 fib(n): fib(n-1) + fib(n-2) fib(0): 0 fib(1): 1 print_int(fib…