Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site ncoast.UUCP Path: utzoo!watmath!clyde!cbosgd!cbdkc1!desoto!packard!edsel!bentley!hoxna!houxm!mhuxr!ulysses!allegra!mit-eddie!genrad!decvax!cwruecmp!atvax!ncoast!bsa From: bsa@ncoast.UUCP (Brandon Allbery) Newsgroups: net.lang.c Subject: Re: YAAO (yet another assignment operator) Message-ID: <508@ncoast.UUCP> Date: Fri, 21-Dec-84 19:32:40 EST Article-I.D.: ncoast.508 Posted: Fri Dec 21 19:32:40 1984 Date-Received: Tue, 25-Dec-84 02:39:02 EST References: <209@cmu-cs-k.ARPA> <529@vu44.UUCP> <4654@rochester.UUCP> Reply-To: bsa@ncoast.UUCP (Brandon Allbery) Organization: Unix-like Operating Systems Consultant Lines: 38 Summary: It's been stated that allowing x->=y would produce an RHS that was not anything usual, and comments about Pascal `with' statements were made. On this topic... I've noticed that one of the hidden error messages in our compiler makes it seem that under certain circumstances, you could use exactly this form in an ordinary expression: specifically, foo(bar) int bar; { struct { int i_val; float i_something; } obj; i_val = bar; } or its equivalent in the opposite direction, as long as you didn't have more than one variable which was supposed to use that struct member (shades of COBOL! :-). Maybe I read it wrongly... but maybe this isn't the problem it might be. I've considered the usefulness of both with blocks and ->= ; I can see uses for both, but not many. And for ->= , the problem discussed with && vs. ^^ applies: += , et al., are signals to the compiler to optimize. I'm not sure that x=x->g (equiv. x=(*x).g, or x = (*x)+offset) can really be optimized that much, so ->= is simply shorthand. Maybe a preprocessor? (As for with: At least the syntax would be regular: with (var) stmts . That doesn't mean I like it.) --bsa -- Brandon Allbery @ decvax!cwruecmp!ncoast!bsa (..ncoast!tdi1!bsa business) 6504 Chestnut Road, Independence, Ohio 44131 (216) 524-1416 <<<<<< An equal opportunity employer: I both create and destroy bugs :-) >>>>>>