0

这是来自MIT 6.001 Online Tutor,它是第三个问题集的一部分。

问题:指出下列每个表达式的类型。如果您需要类型变量,请使用 A、B、C 等,从 A 作为最左边的变量开始。

  1. (lambda (x y) x)=A,B->A
  2. (lambda (p) (p 3))
  3. (lambda (p x) (p x))=(A->B), A->B
  4. (lambda (x y comp) (if (comp x y) x y))

如您所见,我解决了 1 和 3,但这主要是不走运。我仍然无法理解这个概念,这阻止了我解决 2 和 4。

演讲幻灯片可以在这里找到(查看最后几张)。

4

1 回答 1

2
  1. A, B -> A
  2. (数字 -> A) -> A
  3. (A -> B), A -> B
  4. A, A, (A, A -> 布尔值) -> A

(最后一个假设xy是相同的类型)

于 2012-08-15T03:46:34.620 回答