Átbeszéltük a Haskell előnyeit, ez ugyan az, mint amit az első előadáson vettünk.
Átbeszéltük a tantárgy követelményeit, amit már szintén vettünk az előadáson.
A gyakorlatnak van saját teams oldala: jq871yv.
Órai anyag: http://lambda.inf.elte.hu/Drawings.xml
Nem haskellel foglalkoztunk, ez csak egy elvi bevezető a funkcionális programozásba.
Random jegyzetek
Minden két inputú operátornak van prefix / infix változata:
-- Prefix változat
(<|>) (circle 5) (rect 8 2)
-- Infix változat
(circle 5) <|> (rect 8 2)
-- Prefix változat és infix változat összefűzve
(<|>) (circle 5 <|> circle 3) (rect 8 2)
-- A feljebbi ekvivalens ezzel:
(circle 5 <|> circle 3) <|> (rect 8 2)
-- És ezzel is:
circle 5 <|> circle 3 <|> rect 8 2
-- Az előző csak prefixes változata:
(<|>) ((<|>) (circle 5) (circle 3)) (rect 8 2)Minden függvénynek van típusa:
-- azonosító :: paraméter 1 -> kimenet
circle :: Double -> Diagram
-- azonosító :: paraméter 1 -> paraméter 2 -> kimenet
circle :: Double -> Double –> Diagram
-- Azaz, mindig az utolsó amit visszad
-- Az operátorok is úgy vannak definiálva, mint a függvények, csak zárójelben!
(<|>) :: Double -> Double -> DiagramKétparaméteres függvényeket is lehet infix operátorként használni!
-- prefix
move (circle 5) (3,0)
-- infix
(circle 5) `move` (3,0)
-- Az infixek gyakran prioritást élveznek az alap operátorok felett!
-- A precedenciát mi is meg tudjuk határozni egy egyéni számmal (?)
-- Prefixes esetében a zárójelezés, majd balról jobbra határozza meg a műveleti sorrendet.A röpzhban a definíciók közül lesz vmi