lambda defs in C
K. Richard
rich at rexago1.UUCP
Thu Feb 6 03:39:53 AEST 1986
I often find myself creating highly localized register variables in an
attempt to synthesize common sub expression optimization:
{
register char _q = *((x.y)->z);
if (_q == 'a' || _q == 'b' || _q == 'c') { ...
I also want to return values from arbitrary expressions like a for loop.
Lisp has something called a lambda definition which is something like
a local temporary function definition. Sort of like:
if ( lambda int f(register char _q = *((x.y)->z)) {
return(_q == 'a' || _q == 'b' || _q == 'c');
} /* end of lambda def */ ) { ...
or
x = lambda int f() {
for (...) {
...
return(some expression);
...
} /* for */
} /* lambda */
So, academically, if we were to add a simlar feature to a new dialect of C,
or to construct a pre-preprocessor for ansii C (a la C++), what problems
do you see?
K. Richard Magill
More information about the Comp.lang.c
mailing list