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-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,ad988eb0a9545c86 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-04-17 13:15:16 PST Path: supernews.google.com!sn-xit-02!supernews.com!news.gv.tsc.tdk.com!news.iac.net!news-out.cwix.com!newsfeed.cwix.com!news.maxwell.syr.edu!newsfeed.icl.net!dispose.news.demon.net!demon!diablo.netcom.net.uk!netcom.net.uk!not-for-mail From: "Ayende Rahien" Newsgroups: comp.lang.ada Subject: Re: Problem trying to implement generics. Date: Tue, 17 Apr 2001 23:03:30 +0200 Organization: (Posted via) GTS Netcom - Public USENET Service http://pubnews.netcom.net.uk Sender: ayende@softhome.net Message-ID: <9bi7vb$9j7$1@taliesin.netcom.net.uk> References: <9b46dr$cd8$1@taliesin.netcom.net.uk> <9b6jtu$4is$2@taliesin.netcom.net.uk> <9b6m27$68e$1@taliesin.netcom.net.uk> <0JBB6.10484$FD1.1197250@news6-win.server.ntlworld.com> <9b7tce$laf$2@taliesin.netcom.net.uk> <3ADC4320.7ACA3DEC@averstar.com> <9bhoup$h9k$1@taliesin.netcom.net.uk> <3ADC7A79.8E853905@mindspring.com> NNTP-Posting-Host: diup-181-125.inter.net.il X-Trace: taliesin.netcom.net.uk 987538224 9831 213.8.181.125 (17 Apr 2001 20:10:24 GMT) X-Complaints-To: abuse@corp.netcom.net.uk NNTP-Posting-Date: Tue, 17 Apr 2001 20:10:24 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.60.2296.0000 X-MimeOLE: Produced By Microsoft MimeOLE V5.60.2296.0000 Xref: supernews.google.com comp.lang.ada:6955 Date: 2001-04-17T23:03:30+02:00 List-Id: "Brian Rogoff" wrote in message news:Pine.BSF.4.21.0104171057590.21817-100000@shell5.ba.best.com... > On Tue, 17 Apr 2001, Larry Hazel wrote: > > Ayende Rahien wrote: > > > > > > "Tucker Taft" wrote in message > > > news:3ADC4320.7ACA3DEC@averstar.com... > > > > > > > Interestingly enough, the standard Iterator in Java > > > > uses: > > > > while (Iter.hasNext()) { > > > > X = Iter.next(); > > > > ... > > > > } > > > > > > > > even though Java has functions with side effects (although > > > > in fact, only with side-effects on by-reference operands, > > > > since it has no parameter modes at all!). > > > > > > Why use it like this? > > > for (;Iter.hasNext(); X = Iter.next() ){ > > > //do stuff > > > } > > > > > > Is much more readable, IMO. > > > > I disagree. The C style for loop is totally unreadable garbage IMO. > > Well, to a C programmer the for loop is perfectly readable. As someone > familiar with C, Java, Ada, and a few other languages, I have to say that > I found Tucker's original expression far preferable to Ayende's, > though I'd prefer "hasMore" to "hasNext" :-). Ayende, why do you find the > for loop preferable in this case? Because it iterate, which is the whole point of the for loop. In this case, the code that decide how many times the loop will loop is on one line, and easy to see & understand. The part that does stuff is seperated from the looping part, which makes for easier reading. I tend to use the for loop whenever I've something that can be broken like this (checking & forwarding). > As long as we're considering iterators, it should be mentioned that > iterators are one of the great examples for adding downward funargs into > the language. What is funargs? > > In what little C programming I have done, I refused to use for loops. > > Did you use macros to set { and } to BEGIN and END too? > > > Of course, I also refused to use ++, --, +=, and all the other > > wierd C operators. Matter of taste, I guess. > > Indeed, some people have a problem adapting to the features of other > languages. In C's case, those stuff may reduce readiabilty to those who are unfamiliar with the language, but they make for smaller code. Of course, you can always overdo it and turn a sentece to incomprehincible mess, which some people take advantage of. I recall once having to read (my own, written couple of days ago) a 260 characters of C++ code which took over an fifteen minutes to comprehend. IIRC, it was copying one matrix to the other.