Newsgroups: comp.lang.functional
Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!bronze!copper!raja
From: raja@copper.ucs.indiana.edu (Raja Sooriamurthi)
Subject: Re: thunk's
Message-ID: <raja.672375913@copper>
Sender: news@bronze.ucs.indiana.edu (USENET News System)
Organization: Indiana University
References: <1991Apr19.064216.23597@gucis.sct.gu.edu.au> <1151@creatures.cs.vt.edu> <harlan.672371659@copper>
Date: 23 Apr 91 03:05:13 GMT
Lines: 30


>>I have a question that has been nagging me for quite some time: why do we
>>call closures "thunk"s?  I mean, where did that word come from?  The only
>>two theories I've heard, neither with *any* supporting evidence, are that
>>it is an anagram for Knuth, and that perhaps it is a facetious past tense
>>of "think".  Anyone know??

>"The word _thunk_ derives from the implementation of call-by-name in
>Algol 60.  We do not know the origin of this name, but we have heard
>that it refers to the sound made by data when pushed onto the stack in
>a running Algol system."

>  ---Abelson and Sussman, "Structure and Interpretation of Computer Programs"

To quote another source: 

	"The implementation of call-by-name is discusses by Ingerman
who introduces the term thunk to refer to this type of closure
[Ingerman 61]. (The term _thunk_ was presumably a reference to the
'noise' that a static chain pointer makes as it moves within
activation records)" 

			-Horowitz "Fundamentals of Programming Languages"

[Ingerman 61] Ingerman, P. "Thunks" Comm. ACM, 4,1,1961 55-58

(looks like this is where it originated)

-Raja
raja@cs.indiana.edu
