データに遅延部分が含まれているかどうかをチェックする関数が clojure にありますか?
バックグラウンド:
私はclojureで小さなサーバーを構築しています。各接続には、状態、入力ストリーム、および出力ストリームがあります
サーバーは入力ストリームから 1 バイトを読み取り、その値に基づいていくつかの関数の 1 つを呼び出します (状態と入力および出力ストリームをパラメータとして)。関数は、入力ストリームからさらに読み取り、出力ストリームに応答を書き込み、状態を返すことを決定できます。この部分がループします。
状態に遅延部分が含まれていない限り、これはすべて正常に機能します。状態に遅延部分がある場合、(後で別の関数の実行中に) 評価されるときに、入力ストリームからの読み取りと出力ストリームへの書き込みが開始される可能性があります。
したがって、基本的には、これらすべての関数に事後条件を追加して、返される状態のどの部分も遅延していないことを示したいと考えています。遅延シーケンスをチェックする関数はありますか。状態自体が遅延シーケンスであるかどうかを確認するのは簡単だと思いますが、たとえば、値の1つが遅延しているハッシュマップを含むベクトルが状態にあるかどうかを確認したいと思います。