Zoznamy — úloha

Ciele

  1. Vyskúšať vyriešenie väčšej úlohy.

Postup

Krok 1: Komplexnejšia úloha

Úloha 1.1

Definujte funkciu, ktorá vykreslí histogram zo zadaného zoznamu prostredníctvom znakov |. Pričom nech je vykreslená aj legenda — čísla položiek dole a hodnoty naľavo. Pritom nech je v legende vypísaná len každá piata hodnota. Napr. pre zoznam [1,5,3,2,4,1,5,8,7,9,10,6,6,7,5,4,2,2,1] nech je výsledok:

*Main> putStr (histogram values)
10                     |
                     | |
                 |   | |
                 | | | |     |
                 | | | | | | |
 5   |         | | | | | | | | |
     |     |   | | | | | | | | | |
     | |   |   | | | | | | | | | |
     | | | |   | | | | | | | | | | | |
   | | | | | | | | | | | | | | | | | | |
   0         5        10        15
values :: [Int]
values = [1,5,3,2,4,1,5,8,7,9,10,6,6,7,5,4,2,2,1]

histogram :: [Int] -> String
histogram = undefined

Poznámka

Implementáciu rozdeľte na niekoľko samostatných funkcií, napríklad:

histogramBody :: [Int] -> [String]
legendLine :: Int -> String
legendColumn :: Int -> [String]

Príklad riešenia úlohy