0
在Clojure中,修改那裏輸入的函數通常以!警告用戶。我甚至擴展了這個:兩個!意味着該功能具有修改而不是的副作用(即必須在用戶 - GUI交互中持續存在的全局狀態)。clojure不純功能的慣用名
什麼是這表現在它不純使用一個外部狀態的函數的約定,如文件裝載等?
在Clojure中,修改那裏輸入的函數通常以!警告用戶。我甚至擴展了這個:兩個!意味着該功能具有修改而不是的副作用(即必須在用戶 - GUI交互中持續存在的全局狀態)。clojure不純功能的慣用名
什麼是這表現在它不純使用一個外部狀態的函數的約定,如文件裝載等?
沒有這樣的約定。雜質應該從函數名稱或文檔字符串或目的中顯而易見。
例子:
get-settings-from-file
(get-settings :source :file)
load-configuration
import-data
許多不純的功能還沒有結束的''!更可預測的模式是在'!'中事務結束時特別不安全的操作。參見例如'alter-var-root'(非常不純,沒有'!',在交易中是安全的)。 – noisesmith