Á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 -> Diagram

Ké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