def repeat(i)
  r = []; each { |x| r.push(*([x] * i)) }; r
end

Challenge:
  Print out a Serpinski carpet.

On Fri, Sep 19, 2008 at 4:43 PM, Matthew Moss <matthew.moss / gmail.com> wrote:
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
>
> The three rules of Ruby Quiz 2:
>
> 1.  This week only -- no waiting period!
>
> 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://splatbang.com/rubyquiz/>.
>
> 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.
>
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
>
> Apologies for being late today... 'twas distracted by my English
> report!
>
> ## One-Liners Mashup (#177)
>
> This week is going to be very informal, and without any particular
> task or submission. It's hunting season, and we're hunting one-liners.
>
> Basically, we'll start with the simple problem I've presented below.
> Your solution must fit in one line. (Golfing is okay, but not
> necessary. One line *generally* means about 80 chars wide, but we're
> flexible here.) If you are writing a method, the `def foo(args)` and
> `end` (and `class Whatever` and `end` for adding methods to a class)
> doesn't count... the body of the method will.
>
> Of course, your solutions should be generally useful, and not hard-
> coded to solve any particular example used to illustrate what the
> solution should do.
>
> Post your solution AND a followup problem for others to solve. Repeat
> ad nauseum (or until about Wed/Thu).
>
> Ready? Here goes. First problem...
> You should know this pattern well:
>
>    > [:one, "two", 4] * 3
>    => [:one, "two", 4, :one, "two", 4, :one, "two", 4]
>
> Write a single line method on Array that does this instead:
>
>    > [:one, "two", 4].repeat(3)
>    => [:one, :one, :one, "two", "two", "two", 4, 4, 4]
>
>
>



-- 
-Daniel
http://strd6.com