Ответ является easiear, чем Вы могли бы думать: используйте свою любимую ОС. Для Java это - лучший ответ. Не сама разработка, но Ваш комфорт поможет Вашему успеху, просматривая документы и т.д. в Вашей любимой среде.
Вот что я использую в схеме PLT:
#lang scheme
(define (memo f)
(define mh (make-hash))
(lambda p
(hash-ref mh p (lambda ()
(hash-set! mh p (apply f p))
(hash-ref mh p)))))
(define-syntax-rule (defmemo (id . p) . body)
(define id (memo (lambda p . body))))
(provide defmemo)