27 lines
817 B
Factor
27 lines
817 B
Factor
|
! Copyright (c) 2012 Anonymous
|
|||
|
! See http://factorcode.org/license.txt for BSD license.
|
|||
|
USING: io kernel math math.parser math.ranges sequences ;
|
|||
|
IN: rosetta-code.multiplication-tables
|
|||
|
|
|||
|
! http://rosettacode.org/wiki/Multiplication_tables
|
|||
|
|
|||
|
! Produce a formatted 12×12 multiplication table of the kind
|
|||
|
! memorised by rote when in primary school.
|
|||
|
|
|||
|
! Only print the top half triangle of products.
|
|||
|
|
|||
|
: print-row ( n -- )
|
|||
|
[ number>string 2 CHAR: space pad-head write " |" write ]
|
|||
|
[ 1 - [ " " write ] times ]
|
|||
|
[
|
|||
|
dup 12 [a,b]
|
|||
|
[ * number>string 4 CHAR: space pad-head write ] with each
|
|||
|
] tri nl ;
|
|||
|
|
|||
|
: print-table ( -- )
|
|||
|
" " write
|
|||
|
1 12 [a,b] [ number>string 4 CHAR: space pad-head write ] each nl
|
|||
|
" +" write
|
|||
|
12 [ "----" write ] times nl
|
|||
|
1 12 [a,b] [ print-row ] each ;
|