! Copyright (C) 2013 Your name. ! See http://factorcode.org/license.txt for BSD license. USING: kernel ; IN: dragon CONSTANT: d 15 : zig ( p1 p2 -- p1 p3 p2 ) ; : zag ( p1 p2 -- p1 p3 p2 ) ; : is-zero? ( p1 p2 p3 d -- ? p1 p2 p3 d ) [ [ [ 0 = ] keep swap ] dip swap ] dip swap ; : (dragon) ( p1 p2 p3 d -- seq ) is-zero? [ 2array { } swap append ] [ [ 1 - ] 3dip [ zig (dragon) ] 4keep zag (dragon) ] if ; : dragon ( -- seq ) { } d { 0 0 } { 400 400 } zig (dragon) append ;