Если и конд как специальные формы

Рассмотрим эти два абзаца из SICP:

Эта конструкция называется анализом случая, и в Лиспе есть специальная форма для обозначения такого анализа случая. Он называется cond (что означает "условный") и используется следующим образом:

...

При этом используется специальная форма if, условный тип с ограничениями, который можно использовать, когда в анализе случаев есть ровно два случая.

Что означает тип в этом контексте (условный тип с ограничениями)? Значит ли это:

  • "если" является типом "конд"? Поскольку предложение гласит "существует специальная форма", поэтому существует только одна специальная форма, потому что "if" - это один из типов "cond".
  • Оба "если" и "cond" не связаны. Они оба условны. Если это правильно, почему в этом предложении говорится "есть особая форма", как будто она только одна?

1 ответ

Решение

В if[является] ограниченным типом условного ", я считаю, что" условный "не означает конкретно cond; в общем, это означает "условное утверждение / выражение".

Итак, есть два, cond а также if, Каждый из них может быть определен в терминах другого, поэтому в данной реализации может быть выбран только один из них в качестве примитива, определяющего другой в терминах этого; или реализация может хотеть иметь их обоих в качестве примитивных специальных форм.

Специальные формы обрабатываются специально самим интерпретатором (компилятором).

Макросы также могут быть использованы для этого. Тогда они будут обрабатываться не самим интерпретатором, а его механизмом обработки макросов.

Так if является условным; cond является условным; cond может иметь любое количество предложений; if должно иметь ровно два (или один или два, в зависимости от стандарта) предложения; все остальное просто английский.:)

Другие вопросы по тегам