Task
Produce an ASCII representation of a Sierpinski triangle of order   N.



Example
The Sierpinski triangle of order   4   should look like this:

                       *
                      * *
                     *   *
                    * * * *
                   *       *
                  * *     * *
                 *   *   *   *
                * * * * * * * *
               *               *
              * *             * *
             *   *           *   *
            * * * *         * * * *
           *       *       *       *
          * *     * *     * *     * *
         *   *   *   *   *   *   *   *
        * * * * * * * * * * * * * * * *



Related tasks
 Sierpinski triangle/Graphical for graphics images of this pattern. 
 Sierpinski carpet


go =>
   foreach(N in 1..4)
     sierpinski(N),
     nl
   end,
   nl.
 
sierpinski(N)  =>
  Size = 2**N,
  foreach(Y in Size-1..-1..0)
    printf("%s", [' ' : _I in 1..Y]),
    foreach(X in 0..Size-Y-1)
      printf("%s ", cond(X /\ Y == 0, "*", " ")) 
    end,
    nl
  end.