関数があるとしましょう
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 の方法は何ですか?
ありがとう。