Path: utzoo!mnetor!tmsoft!torsqnt!jarvis.csri.toronto.edu!rutgers!aramis.rutgers.edu!porthos.rutgers.edu!lou From: lou@porthos.rutgers.edu (Lou Steinberg) Newsgroups: comp.lang.lisp Subject: Re: Linking and MACL (really efficiency of local functions) Message-ID: Date: 24 Nov 89 18:04:17 GMT References: <21316@brunix.UUCP> <1989Nov20.150510.20700@hellgate.utah.edu> <31762@news.Think.COM> Organization: Rutgers Univ., New Brunswick, N.J. Lines: 26 Cc: lou In article <31762@news.Think.COM> barmar@leander.think.com (Barry Margolin) mentions: > the age-old guideline of keeping your function definitions within > a screenful in size Ah, yes, that's another reason for internal (FLET or LABELS) functions being less popular in lisp than in other languages. In a language like Pascal, it is normal to have only one top-level routine, with all others nested to some level within it. But if you do this, then really only the leaf-level routines fit completely on one screen (or maybe also the next-to-leaf level routines if the leaf-level ones are small). So in the highly interactive environment typical of lisp you don't want to use internal functions for ALL subroutines. Given that most routines are external, people tend to make ALL routines external, which probably makes sense in some kind of psychological-parsimony terms. (Note that the size of a function affects not only how much of it you can see at once, but how long it takes to reload it after editing a piece of it. If the whole file is one top-level function there is no way to reload or recompile a small piece of it.) -- Lou Steinberg uucp: {pretty much any major site}!rutgers!aramis.rutgers.edu!lou arpa: lou@cs.rutgers.edu