! Copyright (C) 2008 Joakim HÃ¥rsman ! See http://factorcode.org/license.txt for BSD license. USING: kernel sequences math strings io ; IN: sierpinski : simple-scan ( seq -- seq ) accumulate swap suffix 1 tail ; : bitxor-scan ( seq -- seq ) 0 [ bitxor ] simple-scan ; : pow ( initial quot n -- ) dup 0 <= [ 2drop ] [ [ dup ] dip 2slip 1 - pow ] if ; recursive : render-line ( seq -- ) " *" nths >string print ; : render ( x -- ) dup 1 swap [ dup render-line bitxor-scan ] swap pow drop ;