Źródła

Do przeczytania / oglądania

Materiały do nauki

Materiały do zajęć

Do oglądania i przetestowania

Ciekawe odnośniki

Laboratoria

Laboratoria archiwum

  1. Projekt szachy termin oddania 23:59:59 21.06.2015
  2. Projekt warcaby termin oddania 23:59:59 15.06.2016

Przykładowe zadania na kolokwium

  • podaj typ wyrażenia lub funkcji np.
replicate a b
    | a ==0 = []
    | a>0 = b:replicate (a-1) b
  • napisz funkcję wyliczającą wartość wielomianu w danym punkcie (parametrami są lista współczynników i argument)
  • wprowadź poprawne nawiasy lub $ w wyrażeniu lub usuń niepotrzebne np. sin cos 5 + 4 , ( (map (2+) ) [1..3])
  • napisz funkcję ($)
  • napisz funkcję (.)
  • mechanizm działania fold{r,l}, map, filter
  • napisz program, który pobierze dane z wejścia i coś z nimi zrobi i wypisze wynik
  • pokaż, że prawa dotyczące monad są spełnione przez monadę identycznościową
  • jaki będzie wynik liftM2 (+) [1..2] [2..4], dlaczego ?
  • jaki będzie wynik liftM2 (+) (Just 4) (Just 6)
  • zdefiniuj operator =<<
  • zdefiniuj operator >=>, co on robi?
  • (\x→[x,x+2]) XXX [1..4] jaki operator można wstawić w miejsce XXX aby wyrażenie było prawidłowe
  • napisz funkcję liczącą węzły drzewa (zliczamy tylko te, które posiadają dane)
    data Tree a = E |L a | N (Tree a) a (Tree a)
  • jak wyglądałby ten program bez notacji do
     main = do { putStrLn "Czesc" ; x<-getLine ; putStr x ; putChar '\n' } 
  • napisz instancję funktora dla list
  • napisz instancję monady dla typu
     data Maybe a = Nothing | Just a

Wyniki