Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uwm.edu!rpi!zaphod.mps.ohio-state.edu!think.com!mintaka!bloom-beacon!eru!hagbard!sunic!mcsun!ukc!edcastle!aiai!jeff From: jeff@aiai.ed.ac.uk (Jeff Dalton) Newsgroups: comp.lang.misc Subject: Re: Re^4: Closures (was Re: class-sic.) Message-ID: <4023@skye.ed.ac.uk> Date: 28 Jan 91 19:45:55 GMT References: <446@data.UUCP> <2400030@otter.hpl.hp.com> Reply-To: jeff@aiai.UUCP (Jeff Dalton) Organization: AIAI, University of Edinburgh, Scotland Lines: 19 In article <2400030@otter.hpl.hp.com> sfk@otter.hpl.hp.com (Steve Knight) writes: >Yes, partial application can be used to implement a full-closure mechanism. And so can a variety of other mechanisms. >It is fairly easy to transform (nested) procedures so that they have no >free-variables EXCEPT for global-variables -- this is akin to lambda-lifting >but works equally well in imperative languages. This transformation assumes >partial application works, of course. It also assumes that assignment to a frozen formal works (persists across calls) w/o some additional translformation. It doesn't, at least not in Pop-11 as it was in '84 or so. >Having transformed a program into this form, all closure-forming >operations are trivially tackled by partial application, And just imagine yourself transforming your program into this form so that you can trivially tackle some problem.