假设我们有一个函数
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方法是什么?
谢谢。