The three rules of Ruby Quiz 2:
1. Please do not post any solutions or spoiler discussion for this quiz until 48 hours have passed from the time on this message.
2. Support Ruby Quiz 2 by submitting ideas as often as you can! (A permanent, new website is in the works for Ruby Quiz 2. Until then, please visit the temporary website at
<http://matthew.moss.googlepages.com/home>.
3. Enjoy!
Suggestion: A [QUIZ] in the subject of emails about the problem helps everyone on Ruby Talk follow the discussion. Please reply to the original quiz message, if you can.
···
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Hello, world?
The first program any new programmer typically sees is one that prints out "Hello, world!" to the console. This tends to be something experienced programmers also see when learning a new language. The first Hello World program was written in B [1] by Kernighan and looked like this:
main( ) {
extrn a, b, c;
putchar(a); putchar(b); putchar(c); putchar('!*n');
}
a 'hell';
b 'o, w';
c 'orld';
Most programmers are probably more familiar with the typical C implementation:
main() {
printf("Hello, world!\n");
}
Ruby can present the same output very simply:
puts "Hello, world!"
But that's too simple... I mean, really... *anyone* can print a simple string to standard output. Can't we get more interesting? Hmmm, how about:
puts sprintf("%s, %s!", "Hello", "world")
Eh, that looks too much like C. Maybe...
puts %w(Hello world).join(", ") + "!"
Yeah, that's definitely looking Ruby-ish.
Your task this week is to print "Hello, world!" to standard output using Ruby in atypical fashion. Some guildlines:
- DO submit multiple variants in your submission, but we don't need 100 variants from everyone. Try to limit yourself to your best dozen.
- DO keep things reasonably simple. I would expect many solutions to be one- or two-liners, some solutions to involve classes and functions, and a variety in-between. But we're looking for Ruby-isms, not volume of code, so don't write pages upon pages of code just to print "Hello, world!"
- DON'T obfuscate unnecessarily. We're looking for interesting Ruby tricks, not utter confusion. A little obfuscation is okay, but a lot is to be avoided.
- DON'T send me my own examples from above. I already did them. Do other stuff. It *is* okay if your solution is similar to mine, provided you make some interesting modifications.