[DFW.pm] Homework for the list, and for Oct 08 meeting
Tommy Butler
homebase at internetalias.net
Thu Sep 11 12:37:13 PDT 2014
You can put a unary plus sign operator on the parens to tell perl that the parens don't belong to the print command. Also comes in handy when using map in certain cases.
print +( ... )
Cheers,
--Tommy Butler
On Sep 11, 2014, Robert Flach <robert.flach at webtooldeveloper.com> wrote:
>Tommy,
> Run the code without the STDOUT, then run it with. It's a simple
>trick to avoid having perl interpret the ternary grouping parenthesis
>as
>print function delemiting parenthesis. TIMTOWDI: You could also wrap
>the entire thing in parenthesis, you could skip the ternary and do your
>
>printing in an if. You could move the ternary to an assignment
>statement to $val just before printing plain old $val (what I would
>probably normally do if I weren't being creative), etc. But the STDOUT
>
>is definitely required for the code as is ;-)
>
>Robert Flach
>*Web Tools*
>On 9/11/2014 1:37 PM, Tommy Butler wrote:
>> "print STDOUT" ???????
>>
>> You did that. On purpose?
>>
>> This raises so many questions :-P
>>
>> -- Tommy Butler
>>
>> On Sep 11, 2014, Robert Flach <robert.flach at webtooldeveloper.com>
>wrote:
>>
>> Well, it sounds like it was a fun meeting. I'm sorry I missed
>> it! I personally will occasionally use the FizzBuzz test when
>> interviewing applicants though I usually use more complicated
>> coding challenges. Maybe I could share one or more of those
>> sometime as a "more advanced" challenge. In the meantime, scroll
>> down for my solution and for the things I look for when
>evaluating
>> a fizzbuzz...
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> #!/usr/bin/perl
>> use strict;
>> use warnings;
>> my $x = 0;
>> while($x++ < 100)
>> {
>> my $val = "";
>> $val .= ( $x % 3 == 0 ) ? "fizz" : "";
>> $val .= ( $x % 5 == 0 ) ? "buzz" : "";
>> print STDOUT ( $val ? $val : "$x" ) . "\n";
>> }
>> Things I look for in a fizz buzz:
>> 1. (Dealbreaker) Is the code readable. (I have a pretty loose
>> definition of readable and it definitely doesn't require
>comments,
>> but if it's unintelligible it's a dealbreaker )
>> 2. (Dealbreaker) Will it produce correct output barring any minor
>> syntax errors i.e. is the algorithm valid.
>> 3. If doing a separate test for fizzbuzz have they optimized to a
>> mod 15 check.
>> 4. Can they (with prompting if needed) make the leap to realizing
>> they can concat the two tests to produce the combined value
>> without a separate test
>> 5. If using real code: will it compile.
>> 6. If using real code: will it compile without errors or warnings
>> (e.g. for perl can I stick a use strict;use warnings; at the top
>> of it.
>>
>> Things I never care about in a fizzbuzz:
>> 1. Do they know the correct operator for modulus (as long as they
>> know modulus is possible)
>> 2. while vs for vs. foreach, variable initialization, ternary vs.
>> if, perl vs c vs (insert your favorite language argument here)
>> 3. correct formatting of output (e.g. I don't mind if they forget
>> to newline it, nor do I give extra points for printf )
>> 4. error handling, supporting input arguments, etc. (this is an
>> algorithm test, not a coding practices test and a coding
>practices
>> test is unsuitable for the time available)
>>
>> Things somewhat unrelated to fizzbuzz but discernible in some way
>> related to the fizzbuzz tests that I definitely care about/give
>> extra credit for.
>> 1. Do they confirm or clarify the requirements with me in some
>way
>> e.g. "When you say instead prints fizz buzz or fizzbuzz do you
>> mean that you don't want it to print those numbers at all and
>only
>> print the alternate text, or would you like it to always print
>the
>> numbers and print that in addition for those meeting the
>> requirements?" It doesn't matter if their question is clearly
>> answered in the requirements as written, restating the
>> requirements as a question is a hugely valuable (and often
>> undervalued) developer skill.
>> 2. Similarly to number 1, do they ask questions about what I want
>> in the solution (e.g. all those things in numbers 2-4 under
>things
>> I never care about above) I don't care about those things (for
>the
>> test; very different standard for "real" code), but many people
>> do, and I DO care about your ability to realize that and your
>> willingness to adjust your style accordingly.
>> 3. I will always ask for some modification of the code
>> afterwards. I care a lot about how they respond to that request,
>> whether it is a request to make it do something different, to
>> change the styling, to comment it, etc.
>> 4. If using pseudo code does their pseudo code look like a human
>> language construction or is it just code with invalid syntax.
>> (Either way, once they are done I will almost always ask for
>> something that would compile/interpret correctly in some
>language.
>>
>>
>>
>>
>> Robert Flach
>> *Web Tools*
>> On 9/11/2014 12:15 PM, Lisa Cloutier wrote:
>>> Solution below:
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> my $x = 1;
>>>
>>> while ($x <= 100)
>>> {
>>> if (($x % 3 == 0) && ($x % 5 == 0))
>>> {
>>> print "FizzBuzz\n";
>>> }
>>> elsif ($x % 3 == 0)
>>> {
>>> print "Fizz\n";
>>> }
>>> elsif ($x % 5 == 0)
>>> {
>>> print "Buzz\n";
>>> }
>>> else
>>> {
>>> print "$x\n";
>>> }
>>> $x++;
>>> }
>>>
>>> I minorly "cheated" in that I didn't know the sign in Perl for
>>> "mod" but had read Bob's email previously (before learning about
>>> the challenge) and realized what he was doing with the % sign.
>>> Had I been in an interview I probably would have used every
>>> special character in turn until I figured out the symbol for
>mod.
>>>
>>> So I guess I can "program my way out of a wet paper bag" as this
>>> website <http://c2.com/cgi/wiki?FizzBuzzTest> proclaimed about
>>> the FizzBuzz test.
>>>
>>> On Thu, Sep 11, 2014 at 11:42 AM, John Fields <wigthft at gmail.com
>>> <mailto:wigthft at gmail.com>> wrote:
>>>
>>> Firstly, I want to thank John Dexter for his Docker
>>> presentation, showing how to encapsulate a Mojolicious Web
>>> server and application for easy deployment. He got what all
>>> presenters get, a free dinner and that warm afterglow from
>>> making the world a better place (with more Perl in it). :)
>>>
>>> I challenged the attendees last night to do the FizzBuzz
>>> program. We even had one programmer in attendance that had
>>> been asked to do it on a job interview the previous day! We
>>> were one day late for him, but hopefully not for you..
>>>
>>> Http://rosettecode.org/wiki/FizzBuzz
>>>
>>> Don't cheat.. Yourself. Do it from scratch before looking
>at
>>> other's solutions. We will pick 2 more, with increasing
>>> difficulty with one per week. Also new member Andy Sohn
>will
>>> offer a short challenge and demonstrate answers live at the
>>> next Mongers.
>>>
>>> So send in your code, and be as creative as you can!
>>> TIMTOWTDI is a strength after all. :)
>>>
>>> Cheers,
>>> John and Tommy
>>>
>>>
>>> _______________________________________________
>>> Dfw-pm mailing list
>>> Dfw-pm at pm.org <mailto:Dfw-pm at pm.org>
>>> http://mail.pm.org/mailman/listinfo/dfw-pm
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Dfw-pm mailing list
>>> Dfw-pm at pm.org
>>> http://mail.pm.org/mailman/listinfo/dfw-pm
>>
>>
>------------------------------------------------------------------------
>>
>> Dfw-pm mailing list
>> Dfw-pm at pm.org
>> http://mail.pm.org/mailman/listinfo/dfw-pm
>>
>>
>> -- Sent with *K-@ Mail
>>
><https://play.google.com/store/apps/details?id=com.onegravity.k10.pro2>*
>
>> - the evolution of emailing.
>>
>>
>> _______________________________________________
>> Dfw-pm mailing list
>> Dfw-pm at pm.org
>> http://mail.pm.org/mailman/listinfo/dfw-pm
>
>
>
>------------------------------------------------------------------------
>
>_______________________________________________
>Dfw-pm mailing list
>Dfw-pm at pm.org
>http://mail.pm.org/mailman/listinfo/dfw-pm
-- Sent with K-@ Mail - the evolution of emailing.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/dfw-pm/attachments/20140911/21b23a73/attachment.html>
More information about the Dfw-pm
mailing list