Играюсь с лиспом, возник такой вопрос: есть функция g, которая вызывает мемоизованую функцию f, причем f используется только внутри g и нигде больше, но для этого f приходится объявлять вне g, а это не очень красиво смотрится.
(def f (memoize (fn [x] ...)))
(defn g [y]
...
(f y)
...)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Так вот, есть ли какой способ объявить мемоизованную f внутри g так, чтобы кэш мемоизации f не сбрасывался при повторном вызове g?
(defn g [y]
...
(with-memo [f (fn [x] ...)] ;;;; Что-нибудь на подобие этого :)
(f y))
...)