PLS Lab

Thunks

A thunk is a computation frozen in time.

Please expand.

History

Along with a not very good definition, there is a historical note in The New Hacker's Dictionary, v. 4.2.2:

Historical note: There are a couple of onomatopoeic myths circulating about the origin of this term. The most common is that it is the sound made by data hitting the stack; another holds that the sound is that of the data hitting an accumulator. Yet another suggests that it is the sound of the expression being unfrozen at argument-evaluation time. In fact, according to the inventors, it was coined after they realized (in the wee hours after hours of discussion) that the type of an argument in Algol-60 could be figured out in advance with a little compile-time thought, simplifying the evaluation machinery. In other words, it had 'already been thought of'; thus it was christened a 'thunk', which is "the past tense of `think' at two in the morning".

References

Ingerman, P. Z. 1961. ‘Thunks: A Way of Compiling Procedure Statements with Some Comments on Procedure Declarations’. Communications of the ACM 4 (1): 55–58. https://doi.org/10.1145/366062.366084.
@article{ingerman_1961,
	title = {Thunks: a way of compiling procedure statements with some comments on procedure declarations},
	volume = {4},
	doi = {10.1145/366062.366084},
	number = {1},
	journal = {Communications of the ACM},
	author = {Ingerman, P. Z.},
	year = {1961},
	pages = {55--58}
}