RosettaCodeData/Task/Draw-a-cuboid/Retro/draw-a-cuboid.retro
2015-02-20 00:35:01 -05:00

19 lines
506 B
Text

3 elements d h w
: spaces ( n- ) &space times ;
: --- ( - ) '+ putc @w 2 * [ '- putc ] times '+ putc ;
: ? ( n- ) @h <> [ '| ] [ '+ ] if ;
: slice ( n- ) '/ putc @w 2 * spaces '/ putc @d swap - dup spaces ? putc cr ;
: |...|/ ( - ) @h [ '| putc @w 2 * spaces '| putc 1- spaces '/ putc cr ] iterd ;
: face ( - )
--- @w 1+ spaces '/ putc cr
|...|/
--- cr ;
: cuboid ( whd- )
!d !h !w cr
@d 1+ spaces --- cr
@d [ dup spaces slice ] iterd
face ;
2 3 4 cuboid