Homepage: https://www.gnu.org/software/emacs
Author: Nicolas Petton
Lazy form evaluation
Thunk provides functions and macros to delay the evaluation of
forms.
Use `thunk-delay' to delay the evaluation of a form (requires
lexical-binding), and `thunk-force' to evaluate it. The result of
the evaluation is cached, and only happens once.
Here is an example of a form which evaluation is delayed:
(setq delayed (thunk-delay (message "this message is delayed")))
`delayed' is not evaluated until `thunk-force' is called, like the
following:
(thunk-force delayed)
This file also defines macros `thunk-let' and `thunk-let*' that are
analogous to `let' and `let*' but provide lazy evaluation of
bindings by using thunks implicitly (i.e. in the expansion).