C-x C-cC-h tC-x C-fC-x b lub C-x C-bC-x 2 w poziomie C-x 3 cofniecie C-x 1 lub C-x 0C-x oC-spacja, kopiowanie M-w wycinanie C-w wklejanie C-y :h[elp] :t[ype] :l[oad] :r[eload] :q[uit]C-c C-l ładuje go w interpreterze (ew. dzieląc okno), C-x o przełącza do drugiego okna. Przećwiczyć elementy zawarte w notatkach, Haskell Book rozdziały 2-3: obliczanie wyrażeń,wycinanki listowe, definiowanie funkcji, silnia, let, lambda, operatory
Napisz własne odpowiedniki standardowych funkcji head, tail, ++, take, drop
Napisz funkcję inits, ktora dla danej listy da liste wszystkich jej odcinkow poczatkowych, np.
inits [1,2] == [[],[1],[1,2]]
Napisz funkcje partitions, ktora dla danej listy xs da liste wszystkich par (ys,zs) takich, że
xs == ys ++ zs
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)
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.