func sierpinski_triangle(n) { var triangle = ['*'] { |i| var sp = (' ' * 2**i) triangle = (triangle.map {|x| sp + x + sp} + triangle.map {|x| x + ' ' + x}) } * n triangle.join("\n") }   say sierpinski_triangle(4)