Есть ли в clojure функция, которая проверяет, содержат ли данные какую-то ленивую часть?
Фон:
Я создаю небольшой сервер в clojure.Каждое соединение имеет состояние, входной поток и выходной поток
Сервер считывает байт из входного потока и на основании значения вызывает одну из нескольких функций (с состоянием и входом ивыходной поток в качестве параметров).Функции могут решить прочитать больше из входного потока, написать ответ в выходной поток и вернуть состояние.Эта часть зацикливается.
Все будет работать нормально, если в состоянии нет ленивых частей.Если в состоянии есть какая-то ленивая часть, которая может, когда она будет оценена (позже, во время другой функции), начать чтение из потока ввода и запись в поток вывода.
Так что в основном я хочудобавить постусловие ко всем этим функциям, заявив, что никакая часть возвращаемого состояния не может быть ленивой.Есть ли функция, которая проверяет ленивые последовательности.Я думаю, было бы легко проверить, является ли само состояние ленивой последовательностью, но я хочу, например, проверить, есть ли у состояния вектор, который содержит хэш-карту, одно из значений которой является ленивым.