C-x C-c
C-h t
C-x C-f
C-x b
lub C-x C-b
C-x 2
w poziomie C-x 3
cofniecie C-x 1
lub C-x 0
C-x o
C-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.