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: 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> 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