A piece of code that represents a delayed computation or a wrapper around an expression that hasn't been evaluated yet. Thunks enable lazy evaluation by deferring expensive operations until their results are actually needed.
Coined by Peter Ingerman in 1961, allegedly as the past tense of 'think' - representing something that has been 'thought of' but not yet computed. The term was used in ALGOL 60 for parameter-passing mechanisms and later adopted for lazy evaluation systems.
A thunk is like a gift card for computation - it represents the promise of a calculation without actually doing the work until you 'cash it in!' This is how lazy languages like Haskell can work with infinite lists and how Redux handles async actions - the thunk holds the recipe for what to compute, but waits until you actually need the result.
Complete word intelligence in one call. Free tier — 50 lookups/day.