代数的データによる制約ベースの型推論
私はML系図の表現ベースの言語に取り組んでいるので、当然、型推論が必要です> :) 現在、EOPL(Friedman and Wand)の単純な実装に基づいて、制約ベースのソリューションを型推論の問題に拡張しようとしていますが、それらはエレガントに代数的データ型を回避しています。 これまでのところ、スムーズに機能しています。式がある場合eでa + b、e : Int、a : Intとb : Int。e一致する場合、 match n with | 0 -> 1 | n' -> n' * fac(n - 1)`, 私は当然と推論することができt(e) = t(the whole match expression)、t(n) = t(0) = t(n')、t(match) = t(1) = t(n' * fac(n - 1)のように... しかし、代数的データ型に関しては、私は非常に確信が持てません。filterのような関数を想定します。 let filter …