2008-02-27から1日間の記事一覧

let polymorphism

let polymorphismというのは,MLやHaskellで使われてる多相型を導入する方法で,多相型をletで束縛された値についてのみ推論する,という方針のこと. let f = fun g x -> g x という定義について,fの型は∀'a'b . ('a -> 'b) -> 'a -> 'bという多相型になる…

letの処理

ややこしいのは2点. 複数回束縛が現れる関数の処理 本質的に相互再帰的でない定義の分解 これらについて処理して,最終的には一つのlet式let {binding} in exprについて次の条件が満たされるようにしたい. bindingはpattern = exprという形 binding中には…