Зачем в Scheme специальное понятие тега местоположения процедуры?
В стандарте сказано:
Каждая процедура, созданная в результате оценки лямбда-выражения, (концептуально) помечается местом хранения, чтобы сделать eqv? и экв.? работать над процедурами
Экв? процедура возвращает #t, если:
- obj1 и obj2 — это процедуры, у которых тэги местоположения равны.
Экв.? и экв? гарантированно будут вести себя одинаково на... процедурах...
Но в то же время:
Переменные и объекты, такие как пары, векторы и строки, неявно обозначают местоположения или последовательности местоположений.
Экв? процедура возвращает #t, если:
- obj1 и obj2 — это пары, векторы или строки, которые обозначают одни и те же места в хранилище.
Экв.? и экв? гарантированно будут вести себя одинаково на... парах... и непустых строках и векторах
Почему бы просто не применить «неявно обозначать местоположения или последовательности местоположений» и к процедурам?
Я думал, что это относится и к ним
Я не вижу ничего особенного в процедурах в этом отношении.