次のデータ型と3つのテスト例があります。
datatype 'a test = Test of ('a -> bool) * string;
val pos = Test (fn x => x > 0, "pos");
val even = Test (fn x => x mod 2 = 0, "even");
val small = Test (fn x => x < 100, "small");
私はまだSMLのロープを学んでいますが、テストの1つを再帰的なカリー化関数として「呼び出す」方法がわかりません。次の機能を試してみましたが、もちろん動作しません。誰かヒントはありますか?
fun pass x [] = []
| pass x (h::t) = (h x)::(pass x t);
pass: 'a -> 'a test list -> string list;
i.e. pass' ~101 [pos, even, small] = ["small"]