DÚ: unix-like sort

Program sort třídí řádky ze standardního vstupu na standardní výstup. Maximální počet bodů: 3.

  1. 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.

  2. 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í.

  3. Pokud je specifikováno -k 6, třiďte podle šestého slova (za  + 1 bod). Hodí se funkce words a read. Pro kompatibilitu s unix-like sortem má první slovo index 1.

  4. 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