Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #23374
| From | rickman <gnuarm@gmail.com> |
|---|---|
| Newsgroups | comp.lang.forth |
| Subject | Re: Programming Style |
| Date | 2013-06-09 15:22 -0400 |
| Organization | A noiseless patient Spider |
| Message-ID | <kp2kcf$652$1@dont-email.me> (permalink) |
| References | <kp2hhp$ktf$2@dont-email.me> <7xvc5n3z3i.fsf@ruckus.brouhaha.com> |
On 6/9/2013 2:42 PM, Paul Rubin wrote: > rickman<gnuarm@gmail.com> writes: >> In the first, the loop is terminated when two reads match. Not >> complex, but I learned "structured programming" in college and this >> sort of thing just doesn't "feel" right (maybe I should get over >> that). The second continues in the loop doing nothing until the max >> count is reached, but is very clear as to what is happening. > > Of course you should be willing to break out of the loop once the > desired condition is met. If you want a purist "structured programming" > approach where the loop has a single exit, the answer is to use a WHILE > loop rather than a DO. Then the test condition would check both the > loop counter, and a flag saying you had found the match result. In > practice I think nobody cares about that any more, so all currently > popular imperative languages that I know of have a way to break out of a > loop (the break statement in C, the LEAVE word in Forth, etc). I'd say > go ahead and use it. > > In functional programming, you'd make the loop counter into a parameter > to the function, and use tail recursion to loop, recursing only if you > didn't get a match and the loop limit hadn't been reached. Yes, I have done the "roll your own" do loop using a while so I could add other conditions. The problem with the "structured" programming approach is that it can be hard to understand what the heck it is doing. Reading the ANS standard they talk about combining exits and branches in oddball ways. Some of those could do the job of the IF at the end of the function. But again, it may be hard to understand especially given the oddball nature. -- Rick
Back to comp.lang.forth | Previous | Next — Previous in thread | Next in thread | Find similar
Programming Style rickman <gnuarm@gmail.com> - 2013-06-09 14:33 -0400
Re: Programming Style Paul Rubin <no.email@nospam.invalid> - 2013-06-09 11:42 -0700
Re: Programming Style rickman <gnuarm@gmail.com> - 2013-06-09 15:22 -0400
Re: Programming Style "WJ" <w_a_x_man@yahoo.com> - 2013-06-09 19:16 +0000
Re: Programming Style rickman <gnuarm@gmail.com> - 2013-06-09 15:36 -0400
Re: Programming Style Roberto Waltman <usenet@rwaltman.com> - 2013-06-09 22:17 -0400
Re: Programming Style rickman <gnuarm@gmail.com> - 2013-06-22 09:53 -0400
Re: Programming Style humptydumpty <ouatubi@gmail.com> - 2013-06-10 00:31 -0700
Re: Programming Style rickman <gnuarm@gmail.com> - 2013-06-10 11:08 -0400
Re: Programming Style humptydumpty <ouatubi@gmail.com> - 2013-06-10 11:09 -0700
Re: Programming Style rickman <gnuarm@gmail.com> - 2013-06-10 18:56 -0400
Re: Programming Style "Elizabeth D. Rather" <erather@forth.com> - 2013-06-10 15:31 -1000
Re: Programming Style rickman <gnuarm@gmail.com> - 2013-06-11 23:10 -0400
Re: Programming Style albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-06-10 08:32 +0000
Re: Programming Style rickman <gnuarm@gmail.com> - 2013-06-10 11:12 -0400
Re: Programming Style albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-06-10 17:22 +0000
Re: Programming Style Mark Wills <markrobertwills@yahoo.co.uk> - 2013-06-11 01:01 -0700
Re: Programming Style Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2013-06-11 15:51 +0100
Re: Programming Style rickman <gnuarm@gmail.com> - 2013-06-12 11:14 -0400
Re: Programming Style "Elizabeth D. Rather" <erather@forth.com> - 2013-06-14 13:03 -1000
Re: Programming Style rickman <gnuarm@gmail.com> - 2013-06-14 19:22 -0400
Re: Programming Style "Elizabeth D. Rather" <erather@forth.com> - 2013-06-14 16:54 -1000
Re: Programming Style rickman <gnuarm@gmail.com> - 2013-06-15 12:14 -0400
Re: Programming Style "Elizabeth D. Rather" <erather@forth.com> - 2013-06-15 11:57 -1000
Re: Programming Style anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-06-17 16:12 +0000
Re: Programming Style rickman <gnuarm@gmail.com> - 2013-06-17 23:08 -0400
Re: Programming Style Hannu Vuolasaho <hannu.vuolasaho@nospam.tut.fi.invalid> - 2013-06-11 18:42 +0000
Re: Programming Style "Ed" <invalid@invalid.com> - 2013-06-12 12:00 +1000
Re: Programming Style "Elizabeth D. Rather" <erather@forth.com> - 2013-06-11 17:07 -1000
Re: Programming Style "Ed" <invalid@invalid.com> - 2013-06-13 14:21 +1000
Re: Programming Style "Elizabeth D. Rather" <erather@forth.com> - 2013-06-12 18:35 -1000
Re: Programming Style "Ed" <invalid@invalid.com> - 2013-06-13 16:56 +1000
Re: Programming Style "Elizabeth D. Rather" <erather@forth.com> - 2013-06-12 21:03 -1000
Re: Programming Style "Ed" <invalid@invalid.com> - 2013-06-14 10:20 +1000
Re: Programming Style "Elizabeth D. Rather" <erather@forth.com> - 2013-06-13 15:46 -1000
Re: Programming Style "Ed" <invalid@invalid.com> - 2013-06-15 23:27 +1000
Re: Programming Style Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-06-15 10:53 -0500
Re: Programming Style Mark Wills <markrobertwills@yahoo.co.uk> - 2013-06-14 01:34 -0700
Re: Programming Style anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-06-14 12:12 +0000
Re: Programming Style albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-06-14 15:13 +0000
Re: Programming Style "Ed" <invalid@invalid.com> - 2013-06-17 21:25 +1000
Re: Programming Style anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-06-17 15:37 +0000
Re: Programming Style Elizabeth D Rather <erather@forth.com> - 2013-06-17 08:17 -1000
Re: Programming Style albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-06-17 19:47 +0000
Re: Programming Style anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-06-18 08:12 +0000
Re: Programming Style Alex McDonald <blog@rivadpm.com> - 2013-06-17 12:59 -0700
Re: Programming Style rickman <gnuarm@gmail.com> - 2013-06-17 23:33 -0400
Re: Programming Style Hugh Aguilar <hughaguilar96@yahoo.com> - 2013-06-19 19:50 -0700
Re: Programming Style Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-06-20 03:08 -0500
Re: Programming Style Alex McDonald <blog@rivadpm.com> - 2013-06-20 01:55 -0700
Re: Programming Style Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-06-20 05:10 -0500
Re: Programming Style Bernd Paysan <bernd.paysan@gmx.de> - 2013-06-20 13:02 +0200
Re: Programming Style anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-06-20 15:40 +0000
Re: Programming Style "Elizabeth D. Rather" <erather@forth.com> - 2013-06-20 07:21 -1000
Re: Programming Style albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-06-20 09:50 +0000
Re: Programming Style rickman <gnuarm@gmail.com> - 2013-06-14 18:50 -0400
Re: Programming Style "Ed" <invalid@invalid.com> - 2013-06-16 00:31 +1000
Re: Programming Style Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-06-15 10:59 -0500
Re: Programming Style albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-06-13 10:48 +0000
Re: Programming Style "Elizabeth D. Rather" <erather@forth.com> - 2013-06-13 07:44 -1000
Re: Programming Style albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-06-15 16:31 +0000
Re: Programming Style albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-06-12 11:10 +0000
Re: Programming Style mhx@iae.nl (Marcel Hendrix) - 2013-06-12 20:51 +0200
Re: Programming Style anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-06-12 15:06 +0000
Re: Programming Style "Ed" <invalid@invalid.com> - 2013-06-13 14:54 +1000
Re: Programming Style "Elizabeth D. Rather" <erather@forth.com> - 2013-06-12 20:43 -1000
Re: Programming Style anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-06-14 12:45 +0000
Re: Programming Style rickman <gnuarm@gmail.com> - 2013-06-14 16:39 -0400
Re: Programming Style "Elizabeth D. Rather" <erather@forth.com> - 2013-06-14 11:37 -1000
Re: Programming Style Hugh Aguilar <hughaguilar96@yahoo.com> - 2013-06-11 18:23 -0700
Re: Programming Style "Elizabeth D. Rather" <erather@forth.com> - 2013-06-15 08:45 -1000
csiph-web