Re: A style question





job-271842874@xxxxxxxxxxxxxx wrote:
Ken Tilton wrote:

Paul Wallich wrote:

job-271842874@xxxxxxxxxxxxxx wrote:

A friend passed on an article regarding the difficulty job candidates had in producing even simple programs (simple as in should take a minute or less). One example was a program to print the numbers 1 to 100 except that "Fizz" should be substituted for numbers divisible by 3, "Buzz" should be substituted for numbers divisible by 5, and "FizzBuzz" should be substituted for numbers divisible by both 3 and 5.

I'd probably brute-force the problem with a simple cond with a nested conditions, along the lines of
(cond ((zerop (mod i 5))
(cond ((zerop (mod i 3)) (print "FizzBuzz"))
(t (print "Buzz"))))
((zerop (mod i 3))
(print "Fizz"))
(t (print i)))


I would object to using cond to implement if, and the redundant code testing for (mod i 3) and associating it with Fizz.


I agree. I expect mod is fast, but I don't like to repeat myself.

Otherwise, I am bothered by the spec. Is the FizzBuzz on 15 tied to it factoring to 3 and 5 and those substitutions, or is that coincidental? ie, Could an RFE come thru for 15 to translate to Bang? Also, is this list expected to expand? If so, will the test always be even divisibility?


Yes, the FizzBuzz on 15 is because the spec said to print FizzBuzz instead of i for any i that is divisible by both 3 and 5. Regarding enhancements,

Sorry, I threw in that translation to 15 myself. But the question still stands: could an RFE come along saying "if divisible by 3 and 5 print BANG"? Or was the spec trying (and failing to say): the translations are 3 this and five that, where multiple matches occur print all. Then my next question is: 45 is FizzFizzBuzz?

I have had managers lunge acroos the table to get at me.

kt

--
Well, I've wrestled with reality for 35 years, Doctor, and
I'm happy to state I finally won out over it.
-- Elwood P. Dowd

In this world, you must be oh so smart or oh so pleasant.
-- Elwood's Mom
.



Relevant Pages

  • Re: A style question
    ... it factoring to 3 and 5 and those substitutions, ... Could an RFE come thru for 15 to translate to Bang? ... will the test always be even divisibility? ... the FizzBuzz on 15 is because the spec said to print FizzBuzz instead of i for any i that is divisible by both 3 and 5. ...
    (comp.lang.lisp)
  • Re: A style question
    ... One example was a program to print the numbers 1 to 100 except that "Fizz" should be substituted for numbers divisible by 3, "Buzz" should be substituted for numbers divisible by 5, and "FizzBuzz" should be substituted for numbers divisible by both 3 and 5. ... I would object to using cond to implement if, and the redundant code testing for and associating it with Fizz. ... factoring to 3 and 5 and those substitutions, ... will the test always be even divisibility? ...
    (comp.lang.lisp)