Begin forwarded message:

> From: Adam <skidooer / gmail.com>
> Date: June 23, 2006 9:08:17 PM CDT
> To: submission / rubyquiz.com
> Subject: Please Forward: Ruby Quiz Submission
>
> pp Pascal (#84)
> -----------------------
>
> class Fixnum
>  def factorial
>    (1..self).to_a.inject(1) { |sum,i| sum *= i }
>  end
>
>  def choose(k)
>    self.factorial / (k.factorial * (self - k).factorial)
>  end
>
>  def times_for_collection
>    collection = []
>    times { |i| collection << yield(i) }
>    collection
>  end
> end
>
> class Array
>  def to_triangle
>    collect { |row| ' ' * ((last.size - row.size) / 2) + row +  
> "\n" }.join
>  end
> end
>
> ARGV[0].to_i.times_for_collection do |n|
>  (n + 1).times_for_collection do |k|
>    (k == 0 ? '%d' : '%6d') % (n > 1 ? (n - 1).choose(k - 1) + (n -
> 1).choose(k) : 1)
>  end.join
> end.to_triangle.display