[ over size - space swap of swap join ] is justify ( $ n --> $ ) [ 0 swap [ dup $ "" != while cr over number$ 4 justify echo$ 5 times [ dup $ "" = iff conclude done sp 10 split swap echo$ ] dip [ 50 + ] again ] 2drop ] is prettyprint ( $ --> ) [ stack ] is adenine ( --> s ) [ stack ] is cytosine ( --> s ) [ stack ] is guanine ( --> s ) [ stack ] is thymine ( --> s ) [ table adenine cytosine guanine thymine ] is bases ( --> [ ) [ 4 times [ 0 i^ bases put ] witheach [ $ "ACGT" find bases 1 swap tally ] 4 times [ sp i^ bases dup echo sp share echo cr ] 0 4 times [ i^ bases take + ] cr say " total " echo ] is tallybases ( [ --> ) $ "CGTAAAAAATTACAACGTCCTTTGGCTATCTCTTAAACTCCTGCTAAATG" $ "CTCGTGCTTTCCAATTATGTAAGCGTTCCGAGACGGGGTGGTCGATTCTG" join $ "AGGACAAAGGTCAAGATGGAGCGCATCGAACGCAATAAGGATCATTTGAT" join $ "GGGACGTTTCGTCGACAAAGTCTTGTTTCGAGAGTAACGGCTACCGTCTT" join $ "CGATTCTGCTTATAACACTATGTTCTTATGAAATGGATGTTCTGAGTTGG" join $ "TCAGTCCCAATGTGCGGGGTTTCTTTTAGTACGTCGGGAGTGGTATTATA" join $ "TTTAATTTTTCTATATAGCGATCTGTATTTAAGCAATTCATTTAGGTTAT" join $ "CGCCGCGATGCTCGGTTCGGACCGCCAAGCATCTGGCTCCACTGCTAGTG" join $ "TCCTAAATTTGAATGGCAAACACAAATAAGATTTAGCAATTCGTGTAGAC" join $ "GACCGGGGACTTGCATGATGGGAGCAGCTTTGTTAAACTACGAACGTAAT" join dup prettyprint cr cr tallybases