RosettaCodeData/Task/Pascals-triangle/Ruby/pascals-triangle-1.rb

11 lines
253 B
Ruby

def pascal(n)
raise ArgumentError, "must be positive." if n < 1
yield ar = [1]
(n-1).times do
ar.unshift(0).push(0) # tack a zero on both ends
yield ar = ar.each_cons(2).map(&:sum)
end
end
pascal(8){|row| puts row.join(" ").center(20)}