【问题标题】:SICP Types and VariablesSICP 类型和变量
【发布时间】:2012-08-15 22:22:28
【问题描述】:

这是来自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。

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

【问题讨论】:

  • 我实际上无法理解这个问题......他们不都是 lambdas 吗?首先,它们的数据类型有何不同?
  • 是的,它们都是 lambda,这就是为什么你必须使用一般的 A、B、C 表示法而不是像 number->number 这样的东西。幻灯片在这里,这是处理此类问题的最后几张幻灯片。 link for slides

标签: scheme sicp


【解决方案1】:
  1. A, B -> A
  2. (数字 -> A) -> A
  3. (A -> B), A -> B
  4. A, A, (A, A -> boolean) -> A

(最后假设xy是同一种类型)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-20
    • 2011-09-09
    • 1970-01-01
    • 2020-04-21
    • 2018-07-21
    • 2018-05-03
    相关资源
    最近更新 更多