讓假設我們有一個函數性能改變功能
type Func = Bool -> SophisticatedData
fun1 :: Func
,我們想改變這個功能的一些輸入:右
change :: SophisticatedData -> Func -> Func
change data func = \input -> if input == False then data else func input
我是那之後的幾個電話change
(endFunc = change data1 $ change data2 $ startFunc
)生成的函數會每次調用所有中間函數?我是否確定GC無法刪除未使用的數據?什麼是Haskell的方式來應對這項任務?
謝謝。
隨着GHC,你甚至不會計算數據,直到它的需要(懶洋洋),或者如果您已被迫評價GC應該能夠清理之後沒有更多的參考資料。 – bheklilr
附註:'data'是關鍵字,不能用作變量名稱。 –