Newsgroups: comp.arch,comp.lang.lisp,comp.lang.scheme
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!oitnews.harvard.edu!news.cs.umb.edu!CTCnet!news.math.psu.edu!feeder.chicago.cic.net!cs.utexas.edu!howland.erols.net!EU.net!uknet!usenet1.news.uk.psi.net!uknet!uknet!newsfeed.ed.ac.uk!edcogsci!richard
From: richard@cogsci.ed.ac.uk (Richard Tobin)
Subject: Re: Theory #51 (superior(?) programming languages)
Message-ID: <E4q4w2.CJ3@cogsci.ed.ac.uk>
Organization: HCRC, University of Edinburgh
References: <5c869q$ss0@news-rocq.inria.fr> <3063053847634983@naggum.no> <5c96sp$k21@web.nmti.com>
Date: Tue, 28 Jan 1997 15:12:01 GMT
Lines: 17
Xref: glinda.oz.cs.cmu.edu comp.arch:74756 comp.lang.lisp:24904 comp.lang.scheme:18196

In article <5c96sp$k21@web.nmti.com> peter@nmti.com (Peter da Silva) writes:
>#define CHKADD(v,u) (((v)+=(u) < (u)) || overflow())

Oh come on, Peter, you know that C's macros are annoyingly limited.
Suppose you wanted this macro to only evaluate u once?  C's macro
language gives the impression of being designed to be just powerful
enough to implement getchar(), but no more.

Inline functions sometimes do the trick, but there are plenty of cases
where you just can't do what you want with either macros or functions,
especially in the cases where you are effectively "extending the
language" to overcome problems like C's second-class arrays.

-- Richard
-- 
"The Socialists had many branches in America, and the deceased had no
doubt infringed their unwritten laws" - A Study in Scarlet
