Re: A style question
- From: Brian Adkins <brian@xxxxxxxxx>
- Date: Wed, 28 Feb 2007 02:24:19 -0500
Ken Tilton wrote:
job-271842874@xxxxxxxxxxxxxx wrote:job-271842874@xxxxxxxxxxxxxx wrote:
Another friend of mine commenting on the same FizzBuzz thread supplied the following Python code. It certainly is concise:
for i in xrange(1,101):
print(str(i), "Fizz", "Buzz", "FizzBuzz")[(i%3==0)|(i%5==0)<<1]
But this is a programming disaster, stupid pet trick atop stupid pet trick. It collapses in a heap the minute anything changes. It builds into itself all sorts of things that just happen to be true. You have missed that what I am driving at is good programming, you are caught up in cleverness, the road to hell in programming.
Agreed. Don't read too much into "It certainly is concise." My statement was intentionally terse.
In the context of the "FizzBuzz" toy example, it can be fun to look at some clever code, but don't infer that I'm "caught up in cleverness". In fact, I've counseled countless coders to comprehend the concealed costs of clever code. *ducks*
Let me help you. If, as it seems, the spec is that FizzBuzz is not accidentally Fizz and Buzz together, then the strings Fizz and Buzz must appear only once in the program, as must the tests (mod x 3) and (mod x 5).
I feel the same way; I guess my original Lisp hack wasn't so terrible - a couple 'o mods and a couple 'o strings. Incorporating some of the feedback from the group gives the following:
(defun fizz-buzz (n)
(do ((i 1 (+ i 1))) ((> i n))
(let
((fizz (zerop (mod i 3)))
(buzz (zerop (mod i 5))))
(when fizz (princ "Fizz"))
(when buzz (princ "Buzz"))
(format t "~A~%" (if (or fizz buzz) "" i)))))
(fizz-buzz 100)
Now on to chapter 3 "Lists" :)
The punch line is that no good programmer could write anything in five minutes, unless the instructions included: "Just frickin make these results appear from this input.".
kt
- Follow-Ups:
- Re: A style question
- From: Rainer Joswig
- Re: A style question
- References:
- A style question
- From: job-271842874
- Re: A style question
- From: job-271842874
- Re: A style question
- From: Ken Tilton
- A style question
- Prev by Date: Re: A style question
- Next by Date: Re: A style question
- Previous by thread: Re: A style question
- Next by thread: Re: A style question
- Index(es):
Relevant Pages
|