Kihagyás

1. előadás - Követelmények

Metadata

  • 4 db zárthelyi (4., 6., 9., 11. hetek)
  • Házi feladatok
  • Év végi NAGY beadandó

Hiányzásból 3 lehet

Zárthelyik

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)

Házi feladatok

MINDEGYIK szükséges

Feltöltés: TMS Oldal

Másolás: Egyszer lehet, DE +1 beadandó feladat

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 Haskell

Statikusan típusos: Minden értéknek van típusa

TISZTÁN funkcionális: nincsenek mellékhatások (memóriába felülírás, változó értékének változtatása, fájlba írás)

Alaptípusok

  • Int
  • Integer
  • Bool (True, False)
  • Char (pl: 'a')
  • String (pl: "Hello World!")
  • Float
  • Double

Osztályok

  • Num (Bármilyen szám)
  • Integral (Egész szám)

Int vs Integer

  • Int: Mérete architektúra függő (32 bites rendszeren 32 bit, same in 64 bit)

  • Integer: "Végtelen" méretű

Parancsok

λ :t False
False :: Bool

λ :t 'a'
'a' :: Char
λ (5 :: Integer) + fromIntegral (3 :: Int)
8
λ "5" ++ "12"
"512"
λ :q --kilépés

Fájl betöltését többféleképpen lehet:

  1. Ha van már nyitva GHCi

    λ :l file.hs
    
  2. .hs fájltípust társítani GHCi-hez

  3. Terminálban megadni paraméterként a GHCi-nek

    ghci file.hs
    

Megnyitott modulok újratöltése:

λ :r

Órai kód

module Gy01 where
a :: Int
a = 1 -- 'a' linear function that returns 1 of type Int

integer :: Integer
integer = 42
f :: Int -> Int
f x = x + 1 -- 'f' function that takes x of type Int and returns x+1

g :: Integer -> Integer -> Integer
g x y = 2 * x - y

Használat

λ a
1

λ integer
42

λ f 3
4

λ f a
2

λ g 1 7
-5

λ g integer integer
42

λ g (fromIntegral (f 6)) integer
-28