pasberth/Macra — pull request #23 by ympbyc (2012-11-11 18:43:07+00:00)
Title: 遅延評価実装してみた

すぐにpullしないで、遅延評価を採用するか否かも含めここで議論しましょう。

今はcall-by-nameって言って、仮引数の名前が出る度にthunkをthaw(解凍)してる。
これからcall-by-need、一度thawした値をキャッシュする方式に書き換えていきたい。

テスト:

```macra
!print
!funcall
!lambda A 1
!print 12345
```

これがMasterの先行評価のコンパイラ+VMだと

```macra
12345.0
1.0
```

って表示される。
lazyの遅延評価コンパイラ+VMでは

```macra
1.0
```