Második Haskell

A programkód minőségét is értékelem: komment-eljünk, adjunk "olvasható" neveket a változóknak, gondolkodjunk a specifikáción.
Minden függvénynek adjuk meg a típusát (ha nem tudjuk, akkor kérdezzük meg a rendszert a :t fgv paranccsal).

Írjunk Haskell függvényeket a következő feladatok megoldására:
  1. Töröljük egy lista minden K-adik elemét.
    1
  2. Valósítsuk meg a "run-length encoding" algoritmust Haskell-ben: egy redundáns - sok egyforma elemet tartalmazó listát - úgy alakítunk kompakt formába, hogy az ismétlődő elemek helyett egy párost tárolunk, ahol az első az elem, a második a multiplicitás.
    Például
    kompakt(["a","a","a","c","c","b"]) -> [["a",3],["c",2],["b",1]]
    Írjuk meg a kódokat úgy, hogy a lusta kiértékelést tudjuk követni.
    1
  3. Ikerprímnek nevezzük a (6*n-1 ; 6*n+1) alakú számpárt melyben mindkettő prím. Keressük meg az összes n-nél kisebb ikerprímet.
    1
  4. Eratosztenész szűrője egy módszer, mellyel az összes prím listáját létre lehet hozni.
    A módszer a következő: a [2,..] listával indulva, mindig prímnek tekintjük a lista fejét, majd a szitát alkalmazzuk arra a listára, melyből kiszűrtük a lista fejének (először a kettőnek) a többszöröseit.
    • Írjunk egy függvényt, mely kiszűri egy szám többszörösét egy listából.
      kiszur.
      0.5
    • Írjuk meg a szitát, alkalmazva a kiszur függvényt.
      szita.
      0.5
    • Implementáljunk egy függvényt, mely a prímszámok közül kiválasztja az N-ediket
      valaszt.
      1
  5. Írjunk függvényt, mely előállítja egy lista összes permutációjának a listáját. Az implementációt végezzük lista-konstruktorokkal: előbb a lista maradékának állítsuk elő a permutációját, majd a lista fejét szúrjuk be az első elem elé - a nulladik pozícióba -, majd az első pozícióba, ... egészen az utolsó pozícióig.
    Például
    perm_lista [] -> [[]]
    perm_lista "ac" -> ["ac","ca"]
    Mérjük meg a perm_lista([3,4,5,6,7,8,9])lista hosszát.
    1
  6. A cumul_op függvény implementálása:
    írjunk függvényt, mely egy listából és egy operátorból azt a listát állítja elő, mely egy pozíciójának a k-adik eleme a bemenő lista első k elemének az op szerinti összetevése.
    Példa:
    cumul_op (+) [2,4,3,4,3] -> [2,6,9,13,16]
    cumul_op (++) ["a","l","m","a"]) -> ["a","al","alm","alma"]
    1
Vissza!
Levélcím: Lehel _dot_ Csato _at_ cs _dot_ ubbcluj _dot_ ro