让假设我们有一个函数性能改变功能
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'是关键字,不能用作变量名称。 –