如果和条件为特殊形式

时间:2018-07-30 16:13:06

标签: scheme lisp sicp

考虑SICP中的这两段:

  

此构造称为案例分析,并且有一种特殊形式   在Lisp中指出了这种案例分析。它称为cond(   代表“有条件的”),其用法如下:

     

...

     

如果条件类型的限制条件是   在案例分析中恰好有两个案例时可以使用。

在这种情况下,类型是什么意思(条件的受限类型)?它的意思是:

  • “ if”是否是“ cond”类型?因为该句子指出“有一种特殊形式”,所以只有一种特殊形式,因为“ if”是“ cond”的一种类型。
  • “ if”和“ cond”都不相关。它们都是有条件的。如果是正确的话,为什么这句话像只有一个一样说“有一种特殊形式”?

1 个答案:

答案 0 :(得分:4)

template<> [是有条件的受限类型”中,我相信“有条件的”并不是专门指if;通常,它表示“条件语句/表达式”。

因此有两个condcond。每个都可以用另一个来定义,因此给定的实现可以选择只将其中一个作为原语,用另一个来定义。或者实现可以选择将它们都作为原始特殊形式。

特殊形式由解释器(编译器)本身专门处理。

宏也可以用于此。然后,它们将不再由解释器本身处理,而是由其宏处理机制处理。

所以if是有条件的; if是有条件的; cond可以具有任意数量的子句; cond必须有两个(取决于标准的一个或两个)子句;其余所有都是英文。 :)