Not logged in
0400d5b703 2011-03-30       crc: {{
0400d5b703 2011-03-30       crc:   3 elements content lines words
0400d5b703 2011-03-30       crc: 
0400d5b703 2011-03-30       crc:   : clean ( $- )
0400d5b703 2011-03-30       crc:     withLength
0400d5b703 2011-03-30       crc:     [ dup @ 10 13 within [ 999 swap &! sip ] ifTrue 1+ ] times drop ;
0400d5b703 2011-03-30       crc: 
0400d5b703 2011-03-30       crc:   : remaining ( $-n )
0400d5b703 2011-03-30       crc:     32 ^strings'splitAtChar ^strings'chop drop ;
0400d5b703 2011-03-30       crc: 
0400d5b703 2011-03-30       crc:   : getLine ( $-$$ )
0400d5b703 2011-03-30       crc:     999 ^strings'splitAtChar ^strings'chop ;
0400d5b703 2011-03-30       crc: 
0400d5b703 2011-03-30       crc:   : countWords ( $- )
0400d5b703 2011-03-30       crc:     [ words ++ remaining dup 1 <> ] while drop ;
0400d5b703 2011-03-30       crc: 
0400d5b703 2011-03-30       crc:   : loadSourceData ( $- )
0400d5b703 2011-03-30       crc:     here swap ^files'slurp here !content heap +! 32 , 0 ,
0400d5b703 2011-03-30       crc:     @content clean ;
0400d5b703 2011-03-30       crc: 
0400d5b703 2011-03-30       crc:   : countLines ( $- )
0400d5b703 2011-03-30       crc:     [ getLine lines ++ countWords dup 1 <> ] while drop ;
0400d5b703 2011-03-30       crc: ---reveal---
0400d5b703 2011-03-30       crc:   : wc ( $-nnn )
0400d5b703 2011-03-30       crc:     lines words [ 0 swap ! ] bi@
0400d5b703 2011-03-30       crc:     heap [ loadSourceData @content countLines ] preserve
0400d5b703 2011-03-30       crc:     @lines @words @content getLength [ 1- ] tri@ ;
0400d5b703 2011-03-30       crc: }}