1. előadás
Meta
- Oktató: Bozó István (2.518)
- Email: bozo_i@inf.elte.hu
Kezdés: 10:15-11:45
- 4 db zárthelyi (4., 6., 9., 11. hetek)
- Házi feladatok
- Év végi NAGY beadandó
6 pontos:
4 gyakorlati pont + 2 elméleti pont (4., 6. hét)
5 gyakorlati pont + 1 elméleti pont (9.,11. hét)
Teljesítés: min 12 pont (ebből min 3 elméleti)
Nagy beadandó
Kötelező alapfeladat + 3 pontos extra
Megajánlott jegy
| Jegy | Pontszám |
|---|---|
| 2 | 12-14 |
| 3 | 15-17 |
| 4 | 18-20 |
| 5 | 21-24 |
Jegyet lehet javítani vizsgával.
A vizsga hasonló a zárthelyihez.
Nyelvi elemek
-- Komment (Egy soros)
{-
Kommentek (Több soros)
-}
a :: Int --Típus Deklaráció
a = 5 --Lineáris függvény
incNumByOne :: Int -> Int -- függvény ami Intet vesz be és ad vissza
incNumByOne x = x + 1
- Függvény definíciókkal kell megoldani a problémákat.
- Nincsenek IMPLICIT mellékhatások
- Statikusan típusozott
- Fordítási időben minden részkifejezés típusa ismert.
- Azaz fordítási időben kiderül sok hiba
- Fordítási időben minden részkifejezés típusa ismert.
- Hivatkozási hely függetlenség
- Nincs előző értéket felülíró értékadás
- Rekurzív problémamegoldás
Nem lefuttatás, hanem kiértékelés
Először az incNumByOne, majd az összeadás (+) értékelődik ki.
Függvények neveit konvenció szerint camelCase-el írjuk ki.
skver x = x * x
skverInc x = skver (inc x) -- függvénykompozíció
skverInc = skver . inc -- *szintén* függvénykompozíció
Mohó vs lusta kiértékelés
Mohó (Greedy Execution)
Belülről-kifelé mindent kiértékel
Lusta (Lazy Execution)
Kívülről-befelé értékel ki, ami szükséges
Típusváltozók, típusosztályok
Rekurzió
Lásd: Rekurzió