On Sat, Dec 22, 2007 at 05:25:26PM +0300, Miguel Mitrofanov wrote:
>>> That's not C.
>>> That's the C preprocessor, which is a textual substitution macro
>> Well, the preprocessor is part of the language in a way. These two come
> No. In fact, these are even two different programs, see man cpp.
No, in fact, preprocessing is an integral part of translating a C
program, see the standard. The standard allows implementing the
translation phases 1-6 (the so-called preprocessing phases) as a
separate program, but there is no requirement to do that.
It is true, however, that preprocessing used to be (in pre-standard
days) separate from the language. This has not been true for decades.
That said, this is all irrelevant to the question of whether C allows
first-class functions. I'm sure we all are capable of writing Haskell
programs that do not have simple and readable translations to C :)
Antti-Juhani Kaijanaho, Jyväskylä, Finland
Haskell-Cafe mailing list