#memoization #dynamic_programming #racket