我想找到lambda表达式\x y -> x y y的类型。我按以下方式进行。我们已经知道了y的类型,让\x y -> x成为C的类型。那么B = C -> x1.The类型的\x y -> x显然是x1->x2->x1型。这是在前面的练习中给我们的,因为这个表达式接受两个参数并返回第一个参数。A = B -> x1 = C -> x1 ->
下面的min定义适用于两个教堂编号,并返回最小的big。每个数字都成为一个连续数,将它的pred发送给另一个,zig和zag,直到到达零。此外,其中一个数字在每次调用时都会将f附加到结果中,因此,最后,您将得到(\ f x -> f (... (f (f x)) ...)),其中右侧的'f's的数量是第一个continuation被调用的次数。 a_continuator = (a (\ pred cont -> (cont pred)) (\ cont -> x)