逆ポーランド記法

1 + 2 は、逆ポーランド記法で、1 2 + となる。
(1 + 2) * (3 - 4) は、 1 2 + 3 4 - * だ。
逆ポーランド記法なんて読めないと思うかもしれないが、日本語だと思えばスラスラ読める。

Forthの系譜、逆ポーランド記法
JoyFactor をちょっと見てみた。

もしかしたら直接にスタックを記述していく逆ポーランド記法のほうが、CPSを書くのに向いているかもしれないと思ったからだ。
継続 = 途中の計算状態 も、大雑把にいえば、スタックの状態のことだし。

それにしても、階乗の再帰が、
factorial == [0 =] [pop 1] [dup 1 - factorial *] ifte
になるのか・・・。if文の導入あたりから、なんだか雲行きが怪しくなってきた。
LISPポーランド記法なわけだし、慣れれば読めるようになるか?
CPSで階乗を書くとこうなることを考えれば、

(define (factorial n cont)
  (if (= n 0)
      (cont 1)
      (factorial (- n 1) (lambda (x) (cont (* n x))))))

逆ポーランド記法も捨てたものではないかも。