Języki i paradygmaty programowania 2015/16

Wykład 13 - Erlang

(T1) 25 lutego- Lab Haskell 0 (przed wykładem)

Emacs

ghci

haskell-mode

Odkrywamy Haskell

Przećwiczyć elementy zawarte w notatkach, Haskell Book rozdziały 2-3: obliczanie wyrażeń,wycinanki listowe, definiowanie funkcji, silnia, let, lambda, operatory

Zadania (raczej po wykładzie)

  1. Napisz własne odpowiedniki standardowych funkcji head, tail, ++, take, drop

  2. Napisz funkcję inits, ktora dla danej listy da liste wszystkich jej odcinkow poczatkowych, np.

    inits [1,2] == [[],[1],[1,2]]
    
  3. Napisz funkcje partitions, ktora dla danej listy xs da liste wszystkich par (ys,zs) takich, że

    xs == ys ++ zs
    
  4. Napisz funkcje permutations, ktora dla danej listy da listę wszystkich jej permutacji (dla unikniecia niejasności mozemy założyć, ze wszystkie elementy listy wejściowej sa różne)

  5. Napisz funkcje nub, ktora usunie z listy wszystkie duplikaty, np

    nub [1,2,1,3,1,2,1,4] == [1,2,3,4]
    

    Możliwe jest wiele rozwiazań, ale przyjmijmy, że funkcja nub pozostawia pierwsze wystąpienie danej wartości, a usuwa powtorzenia.