Path: utzoo!attcan!uunet!decwrl!wuarchive!mit-eddie!uw-beaver!ubc-cs!manis From: manis@cs.ubc.ca (Vincent Manis) Newsgroups: comp.edu Subject: Re: Recursion Summary Message-ID: <10231@ubc-cs.UUCP> Date: 26 Oct 90 13:19:21 GMT References: <1990Oct23.211651.10227@contact.uucp> Sender: news@cs.ubc.ca Distribution: na Organization: Institute for Pure and Applied Eschatology Lines: 30 I was talking with a colleague of mine who knows a lot about numerical analysis. He was saying that the standard method of solving non-sparse linear systems is Gaussian elimination with pivoting (much to my surprise, thinking back to courses I took 20 years ago which claimed that one ought to use Gram-Schmidt, or the like). This lends itself to an extremely clean recursive implementation, he says, which actually runs very efficiently. Your colleague may not be interested in sorting, searching, compiling, or solving linear systems. She may even consider B-trees uninteresting (though of course VSAM files, as well as the Macintosh HFS directory structure, are represented as B-trees). However, I sincerely hope she wouldn't deny that these areas are important to some people. With the recursion elimination technology pioneered by Guy Steele's RABBIT compiler for Scheme, now some 12 years old, recursive code can run as efficiently as iterative code. There certainly are stupid recursions (the naive implementation of Fibonacci numbers is the best-known example), but stupid code is stupid code. I know I couldn't really survive, in the work I do, without recursion. Incidentally, since your colleague is a Cobol programmer, I hope she's getting herself geared up for Object Cobol, which Codasyl has struck a committee to design. Programming languages *are* becoming more alike. -- \ Vincent Manis "There is no law that vulgarity and \ Department of Computer Science literary excellence cannot coexist." /\ University of British Columbia -- A. Trevor Hodge / \ Vancouver, BC, Canada V6T 1W5 (604) 228-2394