Scheme SICP类型和变量

Scheme SICP类型和变量,scheme,sicp,Scheme,Sicp,这是第三道习题的一部分 问题:指出以下每个表达式的类型。如果需要类型变量,请使用A、B、C等,从A开始作为最左边的变量。 (λ(xy)x)=A,B->A (lambda(p)(p3)) (lambda(px)(px))=(A->B),A->B (lambda(x y comp)(if(comp x y)x y)) 正如你所看到的,我解决了1和3,但这主要是出于运气。我仍然在理解这个概念上有问题,这阻止了我解决2和4 可以找到讲座幻灯片(查看最后几张) A、 B->A (数字->A)->A (A-

这是第三道习题的一部分

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

  • (λ(xy)x)
    =
    A,B->A
  • (lambda(p)(p3))
  • (lambda(px)(px))
    =
    (A->B),A->B
  • (lambda(x y comp)(if(comp x y)x y))
  • 正如你所看到的,我解决了1和3,但这主要是出于运气。我仍然在理解这个概念上有问题,这阻止了我解决2和4

    可以找到讲座幻灯片(查看最后几张)

  • A、 B->A
  • (数字->A)->A
  • (A->B),A->B
  • A、 A,(A,A->boolean)->A

  • (最后一个假设
    x
    y
    是相同的类型)

    我实际上很难理解这个问题。。。他们不都是兰姆达斯吗?首先,它们的数据类型有什么不同?是的,它们都是lambda,这就是为什么必须使用通用的A、B、C符号,而不是像number->number这样的东西。幻灯片就在这里,这是最后几张关于这类问题的幻灯片。