インターフェイス改良
きのうのmemo関数にちょっと工夫をすれば、インターフェイスもこのようになる。
fib' = memo1' (\f n -> case n of 0 -> 0 1 -> 1 _ -> f (n - 1) + f (n -2))
これで一次元版は一応の完成。
memo1' f n = memo1 (\n xs -> f (\m -> shift xs n m) n) n where shift xs n m = xs !! (n - m)
きのうのmemo関数にちょっと工夫をすれば、インターフェイスもこのようになる。
fib' = memo1' (\f n -> case n of 0 -> 0 1 -> 1 _ -> f (n - 1) + f (n -2))
これで一次元版は一応の完成。
memo1' f n = memo1 (\n xs -> f (\m -> shift xs n m) n) n where shift xs n m = xs !! (n - m)