Если и конд как специальные формы
Рассмотрим эти два абзаца из SICP:
Эта конструкция называется анализом случая, и в Лиспе есть специальная форма для обозначения такого анализа случая. Он называется cond (что означает "условный") и используется следующим образом:
...
При этом используется специальная форма if, условный тип с ограничениями, который можно использовать, когда в анализе случаев есть ровно два случая.
Что означает тип в этом контексте (условный тип с ограничениями)? Значит ли это:
- "если" является типом "конд"? Поскольку предложение гласит "существует специальная форма", поэтому существует только одна специальная форма, потому что "if" - это один из типов "cond".
- Оба "если" и "cond" не связаны. Они оба условны. Если это правильно, почему в этом предложении говорится "есть особая форма", как будто она только одна?
1 ответ
В if
[является] ограниченным типом условного ", я считаю, что" условный "не означает конкретно cond
; в общем, это означает "условное утверждение / выражение".
Итак, есть два, cond
а также if
, Каждый из них может быть определен в терминах другого, поэтому в данной реализации может быть выбран только один из них в качестве примитива, определяющего другой в терминах этого; или реализация может хотеть иметь их обоих в качестве примитивных специальных форм.
Специальные формы обрабатываются специально самим интерпретатором (компилятором).
Макросы также могут быть использованы для этого. Тогда они будут обрабатываться не самим интерпретатором, а его механизмом обработки макросов.
Так if
является условным; cond
является условным; cond
может иметь любое количество предложений; if
должно иметь ровно два (или один или два, в зависимости от стандарта) предложения; все остальное просто английский.:)