DÚ: unix-like sort
Program sort třídí řádky ze standardního vstupu na standardní výstup. Maximální počet bodů: 3.
Spuštění bez parametrů (za 1 bod). Hodí se funkce
lines
,unlines
a taky:import Data.List (sort, sortBy)
Pro uspořádání stačí že máme
instance Ord String
, neřešte žádné locales apod.Třiďte pozpátku pokud je předán parametr
-r
(za + 1/2 bodu). Je potřeba:import System.Environment (getArgs)
Pro jednoduchost nemusíte řešit případy kdy jsou parametry špatně formátované, ani v následujících rozšířeních zadání.
Pokud je specifikováno
-k 6
, třiďte podle šestého slova (za + 1 bod). Hodí se funkcewords
aread
. Pro kompatibilitu s unix-like sortem má první slovo index 1.Navíc, počítejte i s řádky neobsahující dostatečný počet slov - jsou považovány za nejmenší (za + 1/2 bodu).
Příklad použití (plná varianta)
$ ls -l | runhaskell sort.hs -k 8 -r | tail
-rw-r--r-- 1 admin users 11640 Apr 25 21:06 damy.html
-rw-r--r-- 1 admin users 8732 Apr 25 21:06 akumulator.html
-rw-r--r-- 1 admin users 3554 May 20 16:59 du-sort.html
-rw-r--r-- 1 admin users 16724 May 20 16:55 body.html
-rw-r--r-- 1 admin users 4635 May 14 15:28 hs-data.html
-rw-r--r-- 1 admin users 6315 May 12 15:11 du-seznam-cisel.html
-rw-r--r-- 1 admin users 19303 May 12 11:36 du-segment.html
-rw-r--r-- 1 admin users 2752 May 7 10:46 du-mobil.html
-rw-r--r-- 1 admin users 9120 May 1 10:23 hs-seznamy2.html
total 280