1 ! Copyright (c) 2012 Anonymous
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: io kernel math sequences ;
4 IN: rosetta-code.sierpinski-triangle
6 ! http://rosettacode.org/wiki/Sierpinski_triangle
8 ! Produce an ASCII representation of a Sierpinski triangle of
9 ! order N. For example, the Sierpinski triangle of order 4 should
27 ! * * * * * * * * * * * * * * * *
29 : iterate-triangle ( triange spaces -- triangle' )
30 [ [ dup surround ] curry map ]
31 [ drop [ dup " " glue ] map ] 2bi append ;
33 : (sierpinski) ( triangle spaces n -- triangle' )
34 dup 0 = [ 2drop unlines ] [
37 [ nip dup append ] 2bi
38 ] dip 1 - (sierpinski)
42 [ { "*" } " " ] dip (sierpinski) print ;