From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,fc52c633190162e0 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news1.google.com!news2.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!bcklog2.nntp.dca.giganews.com!nntp.comcast.com!news.comcast.com.POSTED!not-for-mail NNTP-Posting-Date: Tue, 10 Apr 2007 10:38:27 -0500 Sender: jsa@sirius.goldenthreadtech.com Newsgroups: comp.lang.ada Subject: Re: why learn C? References: <1172144043.746296.44680@m58g2000cwm.googlegroups.com> <1172161751.573558.24140@h3g2000cwc.googlegroups.com> <546qkhF1tr7dtU1@mid.individual.net> <5ZULh.48$YL5.40@newssvr29.news.prodigy.net> <1175215906.645110.217810@e65g2000hsc.googlegroups.com> <1175230700.925143.28490@n59g2000hsh.googlegroups.com> <1btkgzzj6zimp.acsq8mkzqz1w$.dlg@40tude.net> <1175488143.324741.283480@y80g2000hsf.googlegroups.com> <9l1Rh.7648$%G4.3596@trndny05> <98mz1hr66v.fsf@hod.lan.m-e-leypold.de> From: jayessay Organization: Tangible Date: 10 Apr 2007 11:48:39 -0400 Message-ID: User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.4 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii NNTP-Posting-Host: 24.61.34.12 X-Trace: sv3-7L4phJw2cQsoKY93dg9IRtHzgBSSFkcA6P44B1kbJf0RgkMnCXgdIYmb1JnM9zPQN7I+ihXFjGsBRmI!KfqFjNRSjqXiHanL/oMZfWnUoaiTagBWPi8YVjb2Sb+ez1smw6j/u3F4VnHC0EXg0VKbYAhdhBkM!J8wlpNKGP1oX0BsKhNwrme89 X-Complaints-To: abuse@comcast.net X-DMCA-Complaints-To: dmca@comcast.net X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.34 Xref: g2news1.google.com comp.lang.ada:14871 Date: 2007-04-10T11:48:39-04:00 List-Id: Markus E Leypold writes: > translators to their favorite target language. Then you post reminded > me that the Lisp macros are quit succesfull and don't seem to be the > problem I always experienced with macro languages. The primary thing to realize here about this point is that Lisp "macros" are not anything like the typical notion of macros from pretty much any else. They are not text substituters or code templates, or code parameterizers, etc. They are functions which, like any other function, can make use of the entire language (including the compiler and evaluator - which are part of the language definition), any libs, external environment (databases, distributed objects (via corba or other IDL/sockets), whatever), etc. The difference is that they are 1) called at a special time (macro expansion time - which most typically occurs during compile time), 2) they are invoked with their arguments _un_evaluated (this is a big part of why they can be so useful in creating new language level constructs), and 3) they can be passed the current lexical environment (this last was not properly fleshed out in the ANSI spec, but Franz has done a very nice job of doing that and providing the spec and implementation to the community). Because of this, things like external "preprocessing" become empty and irrelevant concepts. It also means you can build layered families of seamlessly interconnected domain level languages. > Still I have a bad feeling with macros: They are a really big > temptation to misuse them. I would substitute "possibility" for "really big temptation". Just like for unchecked conversion, goto, and OOP. Of course, YMMV. /Jon -- 'j' - a n t h o n y at romeo/charley/november com