Xref: utzoo comp.lang.lisp:4548 comp.lang.scheme:2035 Path: utzoo!news-server.csri.toronto.edu!cs.utexas.edu!usc!snorkelwacker.mit.edu!ai-lab!gerber!jaffer From: jaffer@gerber.ai.mit.edu (Aubrey Jaffer) Newsgroups: comp.lang.lisp,comp.lang.scheme Subject: Re: Scheme as an Algol-like, not Lisp-like, language Message-ID: <13645@life.ai.mit.edu> Date: 3 Mar 91 00:33:37 GMT References: <1991Feb15.191259.20090@aero.org> <1991Feb15.223520.17267@Think.COM> <1991Feb18.191549.7575@aero.org> <1991Feb19.030719.1137@Think.COM> <4234@skye.ed.ac.uk> >Doesn't this argument apply to all special forms and procedures? >>All we need is if & lambda--should we get rid of and & or, >>cond, etc.? Or are these tools that allow us to focus on the rest of >>the program? I use named procedures and macros to avoid the >>lambda--but also to help me conceptualize what's going on here. >>Other syntactic sugar likewise--are you willing to say that all >>code should be written at the lowest level possible? >>Why not code in binary? No. As I said in the beginning of the article, the problem stems from not being able to syntacticly differentiate between procedure calls and special forms. Scheme has less than 20 special forms. I can remember that small number. A requirement that macro (or special form) symbols start with * or some other marker would make me happy. The radical suggestion I made was prompted by the realization that Scheme's 16 special forms seem to cover almost all the ways I write code (control structure). No one seems to share that observation with me. Someone suggested that `while' should be added to Scheme. To my mind `while' is not different enough from `do' to be useful: (while ) ==> (do () ((not )) )