# (no subject)

**URL:** <https://www.ruby-forum.com/t/no-subject/96068>\
**Category:** Ruby\
**Created:** [June 24, 2006, 10:03pm UTC](https://www.ruby-forum.com/t/no-subject/96068 "2006-06-24T22:03:39Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Benjohn\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/e5b9ba/32.png) [@Benjohn\_B](https://www.ruby-forum.com/u/Benjohn_B)\
**Post date:** [June 24, 2006, 10:03pm UTC](https://www.ruby-forum.com/t/no-subject/96068/1 "2006-06-24T22:03:39Z")

</div>

#!/usr/bin/ruby  
module Pascal  
module\_function  
def next\_row®  
[1] + (0…r.size-1).map{|i|r[i]+r[i+1]} + [1]  
end

def pyramid(n)  
n==1 ? [[1]] : (p=pyramid(n-1)) \<\< next\_row(p[-1])  
end

def pyramid\_string§  
number\_spacing = 1  
slot\_width = p[-1].map{|n|n.to\_s.size}.max + number\_spacing  
row\_width = slot\_width \* p[-1].size  
p.map {|row| row.map {|n| n.to\_s.center(slot\_width)}.join.center  
(row\_width)}.join("\n")  
end  
end

if **FILE** ==$0  
puts Pascal::pyramid\_string(Pascal::pyramid(Integer(ARGV[0]) || 10))  
end  
pascal.rb (END)

---

<div class="post-metadata">

**Author:** ![Benjohn\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/e5b9ba/32.png) [@Benjohn\_B](https://www.ruby-forum.com/u/Benjohn_B)\
**Post date:** [June 24, 2006, 10:09pm UTC](https://www.ruby-forum.com/t/no-subject/96068/2 "2006-06-24T22:09:45Z")

</div>

Sorry - I thought it was Sunday!

Please accept my apology if I’ve spoilt it for you ☹

Sorry,  
Ben

---

<div class="post-metadata">

**Author:** ![Benjohn\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/e5b9ba/32.png) [@Benjohn\_B](https://www.ruby-forum.com/u/Benjohn_B)\
**Post date:** [June 24, 2006, 10:15pm UTC](https://www.ruby-forum.com/t/no-subject/96068/3 "2006-06-24T22:15:53Z")

</div>

$ irb  
irb(main):001:0\> (Time.now - first\_post.time) \> 48.hours  
=\> false
