代码之家  ›  专栏  ›  技术社区  ›  lightning_missile

If和cond作为特殊形式

  •  1
  • lightning_missile  · 技术社区  · 6 年前

    考虑这两段 SICP :

    这种结构称为案例分析,有一种特殊的形式 在Lisp中表示这种案例分析。它叫做cond 表示条件),其用法如下:

    ...

    这使用特殊形式if,一种限制类型的条件 当案例分析中正好有两个案例时可以使用。

    类型在此上下文中是什么意思(限制条件类型)?是不是意味着:

    • “if”是“cond”的一种类型?因为句子中说“有一种特殊形式”,所以只有一种特殊形式,因为“if”是“cond”的一种类型。
    • “如果”和“条件”都不相关。它们都是条件句。如果这是正确的,为什么这句话说“有一种特殊的形式”,好像它只有一种?
    1 回复  |  直到 6 年前
        1
  •  4
  •   Will Ness Derri Leahy    6 年前

    if [是]限制类型的条件“ ,我相信“有条件”并不是特别指 cond ;通常指“条件语句/表达式”。

    所以有两个, 康德 如果 . 每一个都可以用另一个来定义,因此一个给定的实现可以选择只有其中一个作为基元,用它来定义另一个;或者实现可以选择两者都作为基元特殊形式。

    特殊的表单由解释器(编译器)自己处理。

    宏也可以用于此。它们不会由解释器本身来处理,而是由它的宏处理机制来处理。

    所以 如果 是有条件的; 康德 是有条件的; 康德 可以有任意数量的条款; 如果 必须正好有两个(或 一两个 ,取决于标准)从句;其余的都是英语。:)