Danvy の TDPE:Reification の例 (2)
例: reify ((int ? ?) ? ?) v
where v = ?a. (a @ (1 + 2))
v @ x = x @ (1 + 2) ? Error!
そこで x を ?b. x @ b と ? 展開して
v @ (?b. x @ b) = (?b. x @ b) @ (1 + 2) = x @ 3
よって
reify ((int ? ?) ? ?) v = ?x. x @ 3
関数適用の syntax constructor
Previous slide
Next slide
Back to first slide
View graphic version