我是Clojure /函數式編程方法的忠實粉絲,擁有不可變的值。應該將延遲視爲不可變的值嗎?
但是我不確定如果delay應被視爲一個不變的值(假設你延遲一個純函數)。我特別感興趣的是在更大的不可變數據結構中存在一個或多個延遲的情況。
例如含有延遲的向量:
[1 2 (delay (reduce + (range 1000)))]
至於我可以看到這個行爲就好像它是在這個意義上的不可變的值,你看不到延遲的結果,直到你強迫它的評價 - 再結果被緩存,並且在此之後該值永遠不會改變。
以這種方式將延遲視爲不可變的值是否存在問題?