Поскольку переменная не является первоклассным значением, которое вы можете передать другой функции.В 3.4 авторы реализуют функцию make-mutex
, которая использует clear!
в качестве вспомогательной функции, которая принимает ячейку.Если бы ячейка была представлена изменяемой переменной, тогда clear!
нужно было бы определить внутри make-mutex!
, чтобы закрыть эту переменную.То же самое касается вспомогательной функции test-and-set!
.
Они также могли бы использовать, скажем, поле вместо ячейки с консом.