Description
On first evaluation, first-time-value
attempts to evaluate form in the current lexical and dynamic context and cache the primary value it returns, and return that value.
If form performed a non-local exit, then the next evaluation of this first-time-value
call will perform the aforementioned steps again.
On subsequent evaluations after a successful evaluation of form, first-time-value
ignores form and returns the value that was previously cached.
first-time-value
is similar to load-time-value, but evaluates its form in the current lexical and dynamic environment instead of in a null environment, and at the time that code at that location would normally be executed instead of at load time.