News for hackers. Stuff that matters.
Re:Ask HN: Why is it that so many people fail fizzbuzz? by a_bonobo on Wednesday November 21, 2012 @09:14PM (#4817230)
I just googled around for that, and here's a brutish one in Ruby: https://gist.github.com/3230825

And because I had to fiddle around manually to understand it (not good at Ruby's inbuilt methods) here's how it works: It generates two long arrays, one containing "Fizz" every third element, and one containing "Buzz" every five elements, the rest is filled up with nils.

Then it iterates over 1 to 100 and zips the two arrays at that position together - if the "zipped together" sum of both arrays is nil, that number is printed, else the concatenated string of both arrays at that position is printed (example: "Fizz" + nil = "Fizz"). Neat!

Edit: I also found a great one using flip-flops: https://gist.github.com/3230984

Re:Ask HN: Why is it that so many people fail fizzbuzz? by yen223 on Wednesday November 21, 2012 @09:22PM (#4817255)
That is actually a rather clever solution. I guess you could do the same in Python, using itertools.

That said, I guess I should rephrase my question: Is there a simple programming test that can help weed out fakers quickly, which does not involve mathematics? Sort of like "Deploy a simple CRUD app in 15 mins" or something?

This is to address the parent's concern that a lot of web apps out there don't actually require much mathematics.

Re:Ask HN: Why is it that so many people fail fizzbuzz? by freework on Wednesday November 21, 2012 @10:30PM (#4817401)
I did a coding interview problem once where the company gave me an API endpoint that spat out JSON representing products, and told me to build a page that displays those objects onto a page with infinite scroll. As you scrolled down to the bottom of the page it would load more products.
Re:Ask HN: Why is it that so many people fail fizzbuzz? by a_bonobo on Wednesday November 21, 2012 @11:27PM (#4817494)
For completion's sake, yes you can do that in Python, it's just slightly uglier (as far as I know) using

''.join(filter(None, [a, b]))

and

itertools.cycle([None, None, 'Fizz'])

itertools.cycle([None, None, None, None, 'Buzz'])