TIEA341 Funktio-ohjelmointi 1, kevät 2008
|
|
- Riitta-Liisa Karoliina Lahti
- 9 vuotta sitten
- Katselukertoja:
Transkriptio
1 TIEA341 Funktio-ohjelmointi 1, kevät 2008 Luento 11 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 21. tammikuuta 2008
2 Listakomprehensio Uusi tapa luoda (ja muokata) listoja: [ lauseke tarkenne 1,..., tarkenne n ] tarkenne voi olla: hahmo <- listalauseke (generaattori) kukin hahmossa mainittu muuttuja näkyy myöhemmissä tarkenteissa sekä pystyviivan vasemmalla puolella nuolen oikealla puolella olevan lausekkeen on oltava listatyyppiä; kutakin ko. lausekkeen arvon alkiota sovitetaan vuorollaan hahmoon ehtolauseke (vahti) let määritelmäjoukko kukin määritelty muuttuja näkyy myöhemmissä tarkenteissa sekä pystyviivan vasemmalla puolella
3 Esimerkkejä [ x^2 x < [ 1.. ], x mod 2 == 1 ] Lista kaikista parittomien lukujen neliöistä. c a r t e s i a n xs ys = [ ( x, y ) x < xs, y < ys ] Funktio, joka muodostaa kahden listan karteesisen tulon. Idea: iteroidaan generaattoreissa mainittujen listojen läpi ja raakataan pois ne, jotka vahdit hylkäävät, ja muodostetaan kullakin ei-hylätyllä kierroksella uusi alkio tuloslistaan.
4 Kielioppimakeinen [ e True ] = [ e ] [ e q ] = [ e q, True ] [ e b, Q ] = if b then [ e Q ] else [] [ e p <- l, Q ] = let ok p = [ e Q ] ; ok _ = [] in concatmap ok l (missä ok on uusi nimi) [ e let decls, Q ] = let decls in [ e Q ] Missä e on lauseke, q on jokin tarkennin, Q on tarkentimien jono, b on ehtolauseke, p on hahmo, l on listalauseke ja decls on määritelmäjoukko.
5 Tyyppiluokat Muistathan: (+) : : Num a => a > a > a (==) : : Eq a => a > a > Bool show : : Show a => a > String fromintegral : : (Num b, I n t e g r a l a ) => a > b Num, Eq, Show ja Integral ovat tyyppiluokkia osa tyypeistä kuuluu Num:iin, osa ei Num a, Eq a, Show a ja (Num b, Integral a) ovat konteksteja konteksti =>tyyppi tarkoittaa, että kyseinen tyyppi on voimassa silloin, kun konteksti pätee
6 Vakiokirjaston tyyppiluokat: Eq c l a s s Eq a where (==) : : a > a > Bool (/=) : : a > a > Bool x /= y = not ( x == y ) x == y = not ( x /= y ) Tyyppi a kuuluu luokkaan Eq, jos ja vain jos ko. tyypille on määritelty funktiot (==) :: a > a > Bool ja (/=) :: a > a > Bool. Mikäli funktiota (/=) ei ole määritelty, se määritellään automaattisesti luokkaan Eq kuuluvilla tyypeillä seuraavasti: x /= y = not (x == y). Mikäli funktiota (==) ei ole määritelty, se määritellään automaattisesti luokkaan Eq kuuluvilla tyypeillä seuraavasti: x == y = not (x /= y).
7 Vakiokirjaston tyyppiluokat: Ord d a t a O r d e r i n g = LT EQ GT c l a s s Eq a => Ord a where compare : : a > a > O r d e r i n g ( <), (<=), (>=), (>) : : a > a > B o o l max, min : : a > a > a compare x y x == y = EQ x <= y = LT o t h e r w i s e = GT x <= y = compare x y /= GT x < y = compare x y == LT x >= y = compare x y /= LT x > y = compare x y == GT max x y x <= y = y o t h e r w i s e = x min x y x <= y = x o t h e r w i s e = y class Eq a =>Ord a tarkoittaa, että vain Eq-luokkaan kuuluva tyyppi voi kuulua Ord-luokkaan.
8 Vakiokirjaston tyyppiluokat: Show t y p e ShowS = S t r i n g > S t r i n g c l a s s Show a where showsprec : : I n t > a > ShowS show : : a > S t r i n g s h o w L i s t : : [ a ] > ShowS s h o w s P r e c _ x s = show x ++ s show x = s h o w s P r e c 0 x "" s h o w L i s t [ ] = s h o w S t r i n g " [ ] " s h o w L i s t ( x : x s ) = showchar [. shows x. s h o w l x s where s h o w l [ ] = showchar ] s h o w l ( x : x s ) = showchar,. shows x. s h o w l x s
9 ShowS ShowS on näppärä temppu, jolla kierretään se, että (++) on tehoton, kun merkkijonoa kasataan lisäämällä jatkuvasti uutta kamaa loppuun ShowS-tyyppinen arvo edustaa merkkijonoa se on funktio, joka lisää edustamansa merkkijonon parametrina saamansa merkkijonon eteen (.) toimii ShowS-merkkijonojen katenoijana Vakiokirjastossa myös: showchar : : Char > ShowS showstring : : String > ShowS shows : : (Show a ) => a > ShowS
10 showsprec showsprec : : Show a => I n t > a > ShowS muuttaa annetun vekottimen merkkijonoksi huomioiden presedenssitasot ensimmäinen parametri kertoo nykyisen presedenssitason jos tulostettavan vekottimen presedenssi on matalampi kuin nykyisen presedenssitason, merkkijonon ympärille tulee sulut
11 showlist showlist : : Show a => [ a ] > ShowS käyttää normaalisti normaalia listasyntaksia mahdollistaa erikoisten esitysten käyttämisen esim. String-tyypillä tämä on määritelty uudestaan
12 Vakiokirjaston tyyppiluokat: Read t y p e ReadS a = S t r i n g > [ ( a, S t r i n g ) ] c l a s s Read a where r e a d s P r e c : : I n t > ReadS a r e a d L i s t : : ReadS [ a ] r e a d L i s t =... l e x : : ReadS S t r i n g l e x =.. r e a d s : : ( Read a ) => ReadS a r e a d s = r e a d s P r e c 0 r e a d : : ( Read a ) => S t r i n g > a r e a d s = c a s e [ x ( x, t ) < r e a d s s, ( "", "" ) < l e x t ] o f [ x ] > x [ ] > e r r o r " P r e l u d e. r e a d : no p a r s e " _ > e r r o r " P r e l u d e. r e a d : ambiguous p a r s e "
13 ReadS on jäsennysfunktioiden tyyppi: otetaan merkkijono ja palautetaan lista mahdollisista (osittaisista) jäsennyksistä (ja mitä jäi jäljelle) readsprec on showsprec n vastakohta readslist on readsprec n vastakohta reads ja read ovat hyödyllisiä apufunktioita, joita ei määritellä kullekin tyypille erikseen
14 Vakiokirjaston tyyppiluokat: Enum c l a s s Enum a where s u c c, p r e d : : a > a toenum : : I n t > a fromenum : : a > I n t enumfrom : : a > [ a ] [ n.. ] enumfromthen : : a > a > [ a ] [ n, n.. ] enumfromto : : a > a > [ a ] [ n.. m] enumfromthento : : a > a > a > [ a ] [ n, n.. m] s u c c = toenum. (+1). fromenum p r e d = toenum. ( s u b t r a c t 1). fromenum enumfrom x = map toenum [ fromenum x.. ] enumfromto x y = map toenum [ fromenum x.. fromenum y ] enumfromthen x y = map toenum [ fromenum x, fromenum y.. ] enumfromthento x y z = map toenum [ fromenum x, fromenum y.. fromenum z ] lueteltavissa olevien tyyppien luokka
15 Vakiokirjaston tyyppiluokat: Bounded c l a s s Bounded a where minbound : : a maxbound : : a rajoitettujen tyyppien luokka
16 Vakiokirjaston tyyppiluokat: Num c l a s s (Eq a, Show a ) => Num a where (+), ( ), ( ) : : a > a > a negate : : a > a abs, signum : : a > a frominteger : : Integer > a x y = x + negate y negate x = 0 x Kokonaislukuvakiot kulkevat implisiittisesti frominteger n kautta.
17 Vakiokirjaston tyyppiluokat: Real c l a s s (Num a, Ord a ) => Real a where torational : : a > Rational reaalilukuja approksimoivien lukutyyppien luokka jokainen approksimoiva luku on rationaaliluku (torational on tarkka muunnos)
18 Vakiokirjaston tyyppiluokat: Integral c l a s s ( R e a l a, Enum a ) => I n t e g r a l a where quot, rem : : a > a > a d i v, mod : : a > a > a quotrem, divmod : : a > a > ( a, a ) t o I n t e g e r : : a > I n t e g e r n quot d = q where ( q, r ) = quotrem n d n rem d = r where ( q, r ) = quotrem n d n div d = q where ( q, r ) = divmod n d n mod d = r where ( q, r ) = divmod n d divmod n d = i f signum r == signum d then ( q 1, r+d ) e l s e qr where qr@ ( q, r ) = quotrem n d
19 Vakiokirjaston tyyppiluokat: Fractional c l a s s (Num a ) => F r a c t i o n a l a where ( / ) : : a > a > a r e c i p : : a > a fromrational : : Rational > a r e c i p x = 1 / x x / y = x r e c i p y
20 Vakiokirjaston tyyppiluokat: Floating c l a s s ( F r a c t i o n a l a ) => Floating a where pi : : a exp, log, sqrt : : a > a ( ), logbase : : a > a > a sin, cos, tan : : a > a asin, acos, atan : : a > a sinh, cosh, tanh : : a > a asinh, acosh, atanh : : a > a x y = exp ( log x y ) logbase x y = log y / log x s qrt x = x 0. 5 tan x = s i n x / cos x tanh x = sinh x / cosh x
21 Vakiokirjaston tyyppiluokat: RealFrac c l a s s ( R e a l a, F r a c t i o n a l a ) => R e a l F r a c a where p r o p e r F r a c t i o n : : ( I n t e g r a l b ) => a > ( b, a ) t r u n c a t e, r o u n d : : ( I n t e g r a l b ) => a > b c e i l i n g, f l o o r : : ( I n t e g r a l b ) => a > b t r u n c a t e x = m where (m,_) = p r o p e r F r a c t i o n x r o u n d x = l e t ( n, r ) = p r o p e r F r a c t i o n x m = i f r < 0 t h e n n 1 e l s e n + 1 i n c a s e signum ( a b s r 0. 5 ) o f 1 > n 0 > i f e v e n n t h e n n e l s e m 1 > m c e i l i n g x = i f r > 0 t h e n n + 1 e l s e n where ( n, r ) = p r o p e r F r a c t i o n x f l o o r x = i f r < 0 t h e n n 1 e l s e n where ( n, r ) = p r o p e r F r a c t i o n x properfraction palauttaa luvun kokonaisosan ja desimaaliosan toisistaan erotettuina
22 Vakiokirjaston tyyppiluokat: RealFloat c l a s s ( R e a l F r a c a, F l o a t i n g a ) => R e a l F l o a t a where f l o a t R a d i x : : a > I n t e g e r f l o a t D i g i t s : : a > I n t f l o a t R a n g e : : a > ( I n t, I n t ) d e c o d e F l o a t : : a > ( I n t e g e r, I n t ) e n c o d e F l o a t : : I n t e g e r > I n t > a e x p o n e n t : : a > I n t s i g n i f i c a n d : : a > a s c a l e F l o a t : : I n t > a > a isnan, i s I n f i n i t e, i s D e n o r m a l i z e d, i s N e g a t i v e Z e r o, i s I E E E : : a > B o o l a t a n 2 : : a > a > a e x p o n e n t x = i f m == 0 t h e n 0 e l s e n + f l o a t D i g i t s x where (m, n ) = d e c o d e F l o a t x s i g n i f i c a n d x = e n c o d e F l o a t m ( f l o a t D i g i t s x ) where (m,_) = d e c o d e F l o a t x s c a l e F l o a t k x = e n c o d e F l o a t m ( n+k ) where (m, n ) = d e c o d e F l o a t x a t a n 2 y x =...
23 Tyypin määritteleminen osaksi luokkaa instance Eq Char where c == c = fromenum c == fromenum c instance Ord Char where c <= c = fromenum c <= fromenum c Char kuuluu Eq-tyyppiluokkaan, ja samalla määritellään vaadittu funktio c == c = fromenum c == fromenum c. Char kuuluu Ord-tyyppiluokkaan, ja samalla määritellään vaadittu funktio c <= c = fromenum c <= fromenum c.
24 määrittelemättä jätetyt funktiot määritellään class-määrittelyssä esitetyllä tavalla (ns. oletusmääritelmä) jos funktiolla ei ole oletusmääritelmää, se on pakko määritellä jos funktio määritellään instance-määrittelyssä, sen mahdollinen oletusmääritelmä sivuutetaan
25 Esimerkki: Eq (FiniteMap k d) i n s t a n c e ( Eq k, Eq d ) => Eq ( FiniteMap k d ) where EmptyFM == EmptyFM = True (NonEmptyFM l t k d gt ) == (NonEmptyFM l t k d gt ) = k == k && d == d && l t == l t && gt == gt _ == _ = F a l s e
26 Esimerkki: Show Expr i n s t a n c e Show Expr where s h o w s P r e c 1 = showscmp s h o w s P r e c 2 = showsadd s h o w s P r e c 3 = showsmul s h o w s P r e c 4 = showspow s h o w s P r e c 5 = showsunary s h o w s P r e c n n >= 6 = s h o w s P r i m a r y n <= 0 = showsexpr showsexpr : : Expr > ShowS showsexpr = showscmp...
27 ... Esimerkki: Show Expr showscmp : : Expr > ShowS showscmp ( e1 :==: e2 ) = showsadd e1. s h o w S t r i n g " == ". showsadd e2 showscmp ( e1 : /=: e2 ) = showsadd e1. s h o w S t r i n g " /= ". showsadd e2 showscmp ( e1 :<=: e2 ) = showsadd e1. s h o w S t r i n g " <= ". showsadd e2 showscmp ( e1 :>=: e2 ) = showsadd e1. s h o w S t r i n g " >= ". showsadd e2 showscmp ( e1 : <: e2 ) = showsadd e1. s h o w S t r i n g " < ". showsadd e2 showscmp ( e1 : >: e2 ) = showsadd e1. s h o w S t r i n g " > ". showsadd e2 showscmp e = showsadd e showsadd : : Expr > ShowS showsadd ( e1 :+: e2 ) = showsadd e1. s h o w S t r i n g " + ". showsmul e2 showsadd ( e1 : : e2 ) = showsadd e1. s h o w S t r i n g " ". showsmul e2 showsadd e = showsmul e...
28 Esimerkki: Show Expr... showsmul : : Expr > ShowS showsmul ( e1 : : e2 ) = showsmul e1. s h o w S t r i n g " ". showspow e2 showsmul ( e1 : / : e2 ) = showsmul e1. s h o w S t r i n g " ". showspow e2 showsmul e = showspow e showspow : : Expr > ShowS showspow ( e1 : ^ : e2 ) = showsunary e1. s h o w S t r i n g " ^ ". showspow e2 showspow e = showsunary e showsunary : : Expr > ShowS showsunary ( Negate e ) = showchar. showsunary e showsunary e = s h o w s P r i m a r y e s h o w s P r i m a r y : : Expr > ShowS showsprimary (C ( NumValue v ) ) = shows v showsprimary (C ( BoolValue True ) ) = s h o w S t r i n g " (0 == 0) " showsprimary (C ( BoolValue F a l s e ) ) = showstring " (0 /= 0) " s h o w s P r i m a r y (V s ) = s h o w S t r i n g s s h o w s P r i m a r y e = showchar (. showsexpr e. showchar )
29 Varoituksen sana Pidä huoli, että Show ja Read ymmärtävät toisiaan! (Vaihtoehtoisesti älä määrittele Readia.)
30
31
32
Funktionimien kuormitus. TIES341 Funktio ohjelmointi 2 Kevät 2006
Funktionimien kuormitus TIES341 Funktio ohjelmointi 2 Kevät 2006 Kertausta ongelma Mikä on (+) operaattorin tyyppi? Num a => a -> a -> a Mikä on (==) operaattorin tyyppi? Eq a => a -> a -> a Mikä on show
Tyyppejä ja vähän muutakin. TIEA341 Funktio ohjelmointi 1 Syksy 2005
Tyyppejä ja vähän muutakin TIEA341 Funktio ohjelmointi 1 Syksy 2005 Viime luennolla... Haskellin alkeita pääasiassa Hello World!... ja muita tutunoloisia ohjelmia Haskellilla Haskellin voima on kuitenkin
TIEA341 Funktio-ohjelmointi 1, kevät 2008
TIEA341 Funktio-ohjelmointi 1, kevät 2008 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 10. tammikuuta 2008 Arvot... ovat laskutoimituksen lopputuloksia... ovat lausekkeita, joihin
TIEA341 Funktio-ohjelmointi 1, kevät 2008
TIEA341 Funktio-ohjelmointi 1, kevät 2008 Luento 9 Kombinaattoreista Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 21. tammikuuta 2008 Currying Haskell-funktio ottaa aina vain yhden
TIEA341 Funktio-ohjelmointi 1, kevät 2008
TIEA341 Funktio-ohjelmointi 1, kevät 2008 Luento 14: Monadit Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 21. tammikuuta 2008 Tyyppien tyypit eli luonteet engl. kind tyyppinimet, kuten
TIEA341 Funktio-ohjelmointi 1, kevät 2008
TIEA341 Funktio-ohjelmointi 1, kevät 2008 Luento 4 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 17. tammikuuta 2008 Modulin viimeistelyä module Shape ( Shape ( Rectangle, E l l i p
TIEA341 Funktio-ohjelmointi 1, kevät 2008
TIEA341 Funktio-ohjelmointi 1, kevät 2008 Luento 5 Ympärysmitta. Puut. Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 21. tammikuuta 2008 CASE: YMPÄRYSMITTA Lasketaan kuvioiden ympärysmittoja
Laajennetaan vielä Ydin-Haskellia ymmärtämään vakiomäärittelyt. Määrittely on muotoa
2.6. TIETOKONE LASKIMENA 23 Edellä esitetty Ydin-Haskell on hyvin lähellä sitä kieltä, jota GHCi (Glasgow Haskell Compiler, Interactive) sekä muut Haskell-järjestelmät suostuvat ymmärtämään. Esimerkiksi:
TIEA341 Funktio-ohjelmointi 1, kevät 2008
TIEA341 Funktio-ohjelmointi 1, kevät 2008 Luento 10 Todistamisesta Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 21. tammikuuta 2008 Samuuden todistaminen usein onnistuu ihan laskemalla
Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005
Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Tällä luennolla Algebralliset tietotyypit Hahmonsovitus (pattern matching) Primitiivirekursio Esimerkkinä binäärinen hakupuu Muistattehan...
Luku 3. Listankäsittelyä. 3.1 Listat
Luku 3 Listankäsittelyä Funktio-ohjelmoinnin tärkein yksittäinen tietorakenne on lista. Listankäsittely on paitsi käytännöllisesti oleellinen aihe, se myös valaisee funktio-ohjelmoinnin ideaa. 3.1 Listat
5.1 Tyyppiparametrit. Nyt lisäämme parametrit myös data-määrittelyihin: data Nimi tp 1 tp 2 tp 3... tp k =...
5.1 Tyyppiparametrit Nyt lisäämme parametrit myös data-määrittelyihin: data Nimi tp 1 tp 2 tp 3... tp k =... Lisäämme ne myös type- ja newtype-määrittelyihin. Nämäkin parametrit tp i kirjoitetaan pienellä
Tyyppiluokat II konstruktoriluokat, funktionaaliset riippuvuudet. TIES341 Funktio-ohjelmointi 2 Kevät 2006
Tyyppiluokat II konstruktoriluokat, funktionaaliset riippuvuudet TIES341 Funktio-ohjelmointi 2 Kevät 2006 Alkuperäislähteitä Philip Wadler & Stephen Blott: How to make ad-hoc polymorphism less ad-hoc,
TIEA341 Funktio-ohjelmointi 1, kevät 2008
TIEA34 Funktio-ohjelmointi, kevät 2008 Luento 3 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 2. tammikuuta 2008 Ydin-Haskell: Syntaksi Lausekkeita (e) ovat: nimettömät funktiot: \x
Esimerkki: Laskin (alkua) TIEA341 Funktio ohjelmointi 1 Syksy 2005
Esimerkki: Laskin (alkua) TIEA341 Funktio ohjelmointi 1 Syksy 2005 Esimerkki: Laskin Liukulukulaskentaa Yhteen, vähennys, kerto ja jakolaskut Syötteenä laskutehtävä, tulosteena tulos tai virheilmoitus
5.5 Jäsenninkombinaattoreista
5.5. JÄSENNINKOMBINAATTOREISTA 67 type Env α = FiniteMap String α data EnvT m α = MkE (Env Integer m (Env Integer, α)) instance Transformer EnvT where promote mp = MkE $ λenv mp λr return $(env, r) instance
Haskell ohjelmointikielen tyyppijärjestelmä
Haskell ohjelmointikielen tyyppijärjestelmä Sakari Jokinen Helsinki 19. huhtikuuta 2004 Ohjelmointikielten perusteet - seminaarityö HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 1 Johdanto 1 Tyyppien
Geneeriset tyypit. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos
Geneeriset tyypit TIES542 Ohjelmointikielten periaatteet, kevät 2007 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 6. maaliskuuta 2007 Kysymys Mitä yhteistä on seuraavilla funktioilla?
Tämän vuoksi kannattaa ottaa käytännöksi aina kirjoittaa uuden funktion tyyppi näkyviin, ennen kuin alkaa sen määritemää kirjoittamaan.
3.1. LISTAT 35 destaan pisteittäisesti: init :: [α] [α] init (x : []) = [] init (x : xs) = x : init xs Varuskirjastoon kuuluu myös funktiot take ja drop, jotka ottavat tai tiputtavat pois, funktiosta riippuen,
Jäsennys. TIEA341 Funktio ohjelmointi 1 Syksy 2005
Jäsennys TIEA341 Funktio ohjelmointi 1 Syksy 2005 Muistutus: Laskutehtävä ja tulos data Laskutehtava = Luku Double Yhteen Laskutehtava Laskutehtava Vahennys Laskutehtava Laskutehtava Tulo Laskutehtava
Ohjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.
Abstraktit tietotyypit. TIEA341 Funktio ohjelmointi 1 Syksy 2005
Abstraktit tietotyypit TIEA341 Funktio ohjelmointi 1 Syksy 2005 Data abstraktio Abstraktio on ohjelmoinnin tärkein väline Data abstraktio abstrahoi dataa Abstrakti tietotyyppi Koostuu kolmesta asiasta:
jäsennyksestä TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 29. syyskuuta 2016 TIETOTEKNIIKAN LAITOS Kontekstittomien kielioppien
TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 29. syyskuuta 2016 Sisällys Harjoitustehtävätilastoa Tilanne 29.9.2016 klo 8:41 (lähes kaikki kommentoitu) passed
Luento 5. Timo Savola. 28. huhtikuuta 2006
UNIX-käyttöjärjestelmä Luento 5 Timo Savola 28. huhtikuuta 2006 Osa I Shell-ohjelmointi Ehtolause Lausekkeet suoritetaan jos ehtolausekkeen paluuarvo on 0 if ehtolauseke then lauseke
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 16.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 16.2.2010 1 / 41 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti
TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 10. kesäkuuta 2013
TIEA241 Automaatit ja kieliopit, kesä 2013 etenevä Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 10. kesäkuuta 2013 Sisällys etenevä etenevä Chomskyn hierarkia (ja muutakin) kieli säännöllinen LL(k) LR(1)
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen
jäsentämisestä TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 27. marraskuuta 2015 TIETOTEKNIIKAN LAITOS
TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 27. marraskuuta 2015 Sisällys Rekursiivisesti etenevä engl. recursive descent parsing Tehdään kustakin välikesymbolista
Ohjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 7: Funktionaalista ohjelmointia (mm. SICP 3.5) Riku Saikkonen 13. 11. 2012 Sisältö 1 Laiskaa laskentaa: delay ja force 2 Funktionaalinen I/O 3 Funktionaalista
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python 31. tammikuuta 2009 Ohjelmointi Perusteet Pythonin alkeet Esittely Esimerkkejä Muuttujat Peruskäsitteitä Käsittely
TIEA241 Automaatit ja kieliopit, syksy 2015. Antti-Juhani Kaijanaho. 3. joulukuuta 2015
TIEA241 Automaatit ja, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 3. joulukuuta 2015 Sisällys Formaalisti Määritelmä Nelikko G = (V, Σ, P, S) on kontekstiton kielioppi (engl. context-free
TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 2. helmikuuta 2012
TIEA241 Automaatit ja, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 2. helmikuuta 2012 Sisällys Sisällys Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti lueteltava
tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla
2.5. YDIN-HASKELL 19 tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla kirjaimilla. Jos Γ ja ovat tyyppilausekkeita, niin Γ on tyyppilauseke. Nuoli kirjoitetaan koneella
815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset
815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/
815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 6 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/
Demo 7 ( ) Antti-Juhani Kaijanaho. 9. joulukuuta 2005
Demo 7 (14.12.2005) Antti-Juhani Kaijanaho 9. joulukuuta 2005 Liitteenä muutama esimerkki Ydin-Haskell-laskuista. Seuraavassa on enemmän kuin 12 nimellistä tehtävää; ylimääräiset ovat bonustehtäviä, joilla
Laiska laskenta, korekursio ja äärettömyys. TIEA341 Funktio ohjelmointi Syksy 2005
Laiska laskenta, korekursio ja äärettömyys TIEA341 Funktio ohjelmointi Syksy 2005 Muistatko graafinsievennyksen? DAG esitys ja graafinsievennys DAG esitys Lausekkeen rakennepuu, jossa yhteiset alilausekkeet
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman
Lyhyt kertaus osoittimista
, syksy 2007 Kertausta Luento 10 12.10.2007 Syksy 2007 1 Lyhyt kertaus osoittimista char *p; /* char, int, jne ilmoittavat, minkä tyyppisiä */ Keskusmuisti int *q; /* olioita sisältäviin muistilohkoihin
Fortran 90/95. + sopii erityisesti numeriikkaan:
Fortran 90/95 + sopii erityisesti numeriikkaan: + optimoivat kääntäjät tehokas koodi + mukana valmiiksi paljon varusfunktioita + kompleksiluvut + taulukko-operaatiot + operaattorit laajennettavissa myös
Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin
Ohjausjärjestelmien jatkokurssi Visual Basic vinkkejä ohjelmointiin http://www.techsoft.fi/oskillaattoripiirit.htm http://www.mol.fi/paikat/job.do?lang=fi&jobid=7852109&index=240&anchor=7852109 Yksiköt
Harjoitus 1 -- Ratkaisut
Kun teet harjoitustyöselostuksia Mathematicalla, voit luoda selkkariin otsikon (ja mahdollisia alaotsikoita...) määräämällä soluille erilaisia tyylejä. Uuden solun tyyli määrätään painamalla ALT ja jokin
Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.
2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 15.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.2.2010 1 / 46 Merkkijonot Merkkijonojen avulla ohjelmassa voi esittää tekstitietoa, esim. nimiä, osoitteita ja
2 Funktion derivaatta
ANALYYSI B, HARJOITUSTEHTÄVIÄ, KEVÄT 2019 2 Funktion derivaatta 2.1 Määritelmiä ja perusominaisuuksia 1. Määritä suoraan derivaatan määritelmää käyttäen f (0), kun (a) + 1, (b) (2 + ) sin(3). 2. Olkoon
Johdatus f90/95 ohjelmointiin. H, R & R luvut 1-3
Johdatus f90/95 ohjelmointiin H, R & R luvut 1-3 Fortran-kieli ( 3.1-3) IBM 1954, FORmula TRANslator ISO/ANSI standardit f90, f95, f2003 tieteellinen & teknillinen laskenta rinnakkaislaskenta (HPF, openmp)
Matriiseista. Emmi Koljonen
Matriiseista Emmi Koljonen 3. lokakuuta 22 Usein meillä on monta systeemiä kuvaavaa muuttujaa ja voimme kirjoittaa niiden välille riippuvaisuuksia, esim. piirin silmukoihin voidaan soveltaa silmukkavirtayhtälöitä.
6 Eksponentti- ja logaritmifunktio
ANALYYSI A, HARJOITUSTEHTÄVIÄ, KEVÄT 019 6 Eksponentti- ja logaritmifunktio 6.1 Eksponenttifunktio 1. Määritä (a) e 3 e + 5, (b) e, (c) + 3e e cos.. Tutki, onko funktiolla f() = 1 e tan + 1 ( π + nπ, n
Taas laskin. TIES341 Funktio ohjelmointi 2 Kevät 2006
Taas laskin TIES341 Funktio ohjelmointi 2 Kevät 2006 Rakennepuutyyppi data Term = C Rational T F V String Term :+: Term Term : : Term Term :*: Term Term :/: Term Term :==: Term Term :/=: Term Term :
ITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat
Ohjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 4: Symbolit, derivojaesimerkki, kierroksen 1 ratkaisut (mm. SICP 2.32.3.2) Riku Saikkonen 1. 11. 2011 Sisältö 1 Symbolit ja sulkulausekkeet 2 Lisää Schemestä:
Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python
Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python 8. marraskuuta 2010 Ohjelmointi Perusteet Peruskäsitteitä Olio-ohjelmointi Pythonin alkeet Esittely Esimerkkejä Muuttujat
Funktion määrittely (1/2)
Funktion määrittely (1/2) Funktio f : A B on sääntö, joka liittää jokaiseen joukon A alkioon a täsmälleen yhden B:n alkion b. Merkitään b = f (a). Tässä A = M f on f :n määrittelyjoukko, B on f :n maalijoukko.
TIEA341 Funktio-ohjelmointi 1, kevät 2008
TIEA341 Funktio-ohjelmointi 1, kevät 2008 Luento 3 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 14. tammikuuta 2008 Viittausten läpinäkyvyyden 1 periaatteet 1. Lausekkeen arvo ei riipu
Ohjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 6: Funktionaalista ohjelmointia: todistamisesta, virrat ja I/O, hahmonsovitus (mm. SICP 3.5) Riku Saikkonen 8. 11. 2011 Sisältö 1 Vähän funktionaalisten
Koostefunktiot. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:
Funktiot Koostefunktiot Viisi standardifunktiota: AVG -- keskiarvo MIN -- pienin arvo MAX -- suurin arvo SUM -- summa COUNT-- lukumäärä Esim. montako henkilöä on henkilo-taulussa: SELECT Count(*) AS Lkm
2.4 Normaalimuoto, pohja ja laskentajärjestys 2.4. NORMAALIMUOTO, POHJA JA LASKENTAJÄRJESTYS 13
2.4. NORMAALIMUOTO, POHJA JA LASKENTAJÄRJESTYS 13 Toisinaan voi olla syytä kirjoittaa α- tai β-kirjain yhtäsuuruusmerkin yläpuolelle kertomaan, mitä muunnosta käytetään. Esimerkki 4 1. (λx.x)y β = y 2.
Tietotyypit ja operaattorit
Tietotyypit ja operaattorit Luennossa tarkastellaan yksinkertaisten tietotyyppien int, double ja char muunnoksia tyypistä toiseen sekä esitellään uusia operaatioita. Numeeriset tietotyypit ja muunnos Merkkitieto
5.3 Laskimen muunnelmia 5.3. LASKIMEN MUUNNELMIA 57
5.3. LASKIMEN MUUNNELMIA 57 Samaan sarjaan kuuluu seuraavakin funktio, jonka määritelmä esittelee muutenkin hyödyllisen tavan kirjoittaa ohjelmia: getline :: IO String getline = getchar λc case c of \n
Ohjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 3: SICP kohdat 2.22.3, 33.1 ja 3.33.3.2 Riku Saikkonen 8. 11. 2010 Sisältö 1 Lisää listoista 2 Symbolit ja sulkulausekkeet 3 Derivoijaesimerkki 4 Muuttujan
MATEMATIIKAN PERUSKURSSI I Harjoitustehtäviä syksy Millä reaaliluvun x arvoilla. 3 4 x 2,
MATEMATIIKAN PERUSKURSSI I Harjoitustehtäviä syksy 6. Millä reaaliluvun arvoilla a) 9 =, b) + + + 4, e) 5?. Kirjoita Σ-merkkiä käyttäen summat 4, a) + 4 + 6 + +, b) 8 + 4 6 + + n n, c) + + +
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 26.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 26.1.2009 1 / 33 Valintakäsky if syote = raw_input("kerro tenttipisteesi.\n") pisteet = int(syote) if pisteet >=
jäsentäminen TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 26. marraskuuta 2015 TIETOTEKNIIKAN LAITOS
TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 26. marraskuuta 2015 Sisällys Tunnistamis- ja jäsennysongelma Olkoon G = (N, Σ, P, S) kontekstiton kielioppi ja
l 1 2l + 1, c) 100 l=0 AB 3AC ja AB AC sekä vektoreiden AB ja
MATEMATIIKAN PERUSKURSSI I Harjoitustehtäviä syksy 7. Millä reaaliluvun arvoilla a) 9 =, b) + 5 + +, e) 5?. Kirjoita Σ-merkkiä käyttäen summat 4, a) + + 5 + + 99, b) 5 + 4 65 + + n 5 n, c) +
TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 9. lokakuuta 2016
TIEA241 Automaatit ja, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 9. lokakuuta 2016 Sisällys Kontekstiton kielioppi Kontekstiton kielioppi koostuu joukosta päätemerkkejä (engl. terminal symbols),
KOOSTEFUNKTIOT. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:
FUNKTIOT Viisi standardifunktiota: AVG -- keskiarvo MIN -- pienin arvo MAX -- suurin arvo SUM -- summa COUNT -- lukumäärä KOOSTEFUNKTIOT Esim. montako henkilöä on henkilo-taulussa: SELECT Count(*) AS Lkm
LUKUTEORIA A. Harjoitustehtäviä, kevät 2013. (c) Osoita, että jos. niin. a c ja b c ja a b, niin. niin. (e) Osoita, että
LUKUTEORIA A Harjoitustehtäviä, kevät 2013 1. Olkoot a, b, c Z, p P ja k, n Z +. (a) Osoita, että jos niin Osoita, että jos niin (c) Osoita, että jos niin (d) Osoita, että (e) Osoita, että a bc ja a c,
l 1 2l + 1, c) 100 l=0
MATEMATIIKAN PERUSKURSSI I Harjoitustehtäviä syksy 5. Millä reaaliluvun arvoilla a) 9 =, b) 5 + 5 +, e) 5?. Kirjoita Σ-merkkiä käyttäen summat 4, a) + + 5 + + 99, b) 5 + 4 65 + + n 5 n, c)
vaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS
TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 13. lokakuuta 2016 Sisällys Harjoitustehtävätilastoa Tilanne 13.10.2016 klo 9:42 passed waiting redo submitters
Oliot ja tyypit. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos
Oliot ja tyypit TIES542 Ohjelmointikielten periaatteet, kevät 2007 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 19. maaliskuuta 2007 Olion tyyppi? attribuutti on oikeastaan metodi,
Ohjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 5: Sijoituslause, SICP-oliot, tietorakenteen muuttaminen (mm. SICP 33.1.3, 3.33.3.2) Riku Saikkonen 6. 11. 2012 Sisältö 1 Muuttujan arvon muuttaminen:
Java-kielen perusteet
Java-kielen perusteet String-merkkijonoluokka 1 Ohjelmointikielten merkkijonot Merkkijonot ja niiden käsittely on välttämätöntä ohjelmoinnissa Valitettavasti ohjelmointikielten tekijät eivät tätä ole ottaneet
JavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia)
JavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia) Esim 5.1 laskujärjestys operaattorit var tulos = 5 + 4 * 12 / 4; document.write("5 + 4 * 12 / 4 laskutoimituksen tulos
T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )
T-79144 Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet 11-22) 26 29102004 1 Ilmaise seuraavat lauseet predikaattilogiikalla: a) Jokin porteista on viallinen
Ohjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 8: Tulkki: proseduurit, abstrakti syntaksi, quote ja cond (mm. SICP 44.1.5 osin) Riku Saikkonen 15. 11. 2011 Sisältö 1 Argumentittomat proseduurit ja käyttöliittymä
Ohjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 8: Pienen ohjelmointikielen tulkki (ohjelmoitava laskin) (mm. SICP 4-4.1.5 osin) Riku Saikkonen 15. 11. 2012 Sisältö 1 Nelilaskintulkki, globaalit muuttujat
Tietueet. Tietueiden määrittely
Tietueet Tietueiden määrittely Tietue on tietorakenne, joka kokoaa yhteen eri tyyppistä tietoa yhdeksi asiakokonaisuudeksi. Tähän kokonaisuuteen voidaan viitata yhteisellä nimellä. Auttaa ohjelmoijaa järjestelemään
1 sup- ja inf-esimerkkejä
Alla olevat kohdat (erityisesti todistukset) ovat lähinnä oheislukemista reaaliluvuista, mutta joihinkin niistä palataan myöhemmin kurssilla. 1 sup- ja inf-esimerkkejä Kaarenpituus. Olkoon r: [a, b] R
TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 30. marraskuuta 2015
TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 30. marraskuuta 2015 Sisällys t Väitöstilaisuus 4.12.2015 kello 12 vanhassa juhlasalissa S212 saa tulla 2 demoruksia
815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava
Jatkeet. TIES341 Funktio ohjelmointi 2 Kevät 2006
Jatkeet TIES341 Funktio ohjelmointi 2 Kevät 2006 Havainto: häntäkutsu (1) Funktiokutsun yleinen toimintaperiaate: (koskee vain täysiä kutsuja, ts. jotka eivät palauta funktiota) kutsuja kirjaa pinoon paluuosoitteen
Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta
C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus
MATEMATIIKAN JA TILASTOTIETEEN LAITOS Analyysi I Harjoitus alkavalle viikolle Ratkaisuehdotuksia (7 sivua) (S.M)
MATEMATIIKAN JA TILASTOTIETEEN LAITOS Analyysi I Harjoitus 7. 2. 2009 alkavalle viikolle Ratkaisuehdotuksia (7 sivua) (S.M) Luennoilla on nyt menossa vaihe, missä Hurri-Syrjäsen monistetta käyttäen tutustutaan
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 10.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 10.2.2010 1 / 43 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin
Integroimistekniikkaa Integraalifunktio
. Integroimistekniikkaa.. Integraalifunktio 388. Vertaa funktioiden ln ja ln, b) arctan ja arctan + k k, c) ln( + 2 ja ln( 2, missä a >, derivaattoja toisiinsa. Tutki funktioiden erotusta muuttujan eri
Kielioppia: toisin kuin Javassa
Object Pascal Pascal kielen oliolaajennus (Inprise/Borland:n oma) luokat Voit uudelleenkäyttää luomiasi objekteja esim. komponentteja Periytyminen Kielioppia: toisin kuin Javassa Ei eroa isojen ja pienien
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 11.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 11.2.2009 1 / 33 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin
Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)
VISUAL BASIC OHJEITA Kutsuttava ohjelma alkaa kometoparilla Sub... End Sub Sub ohjelmanimi()...koodia... End Sub Muuttujat Muuttujan esittely Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency,
Tämä tarina on Fibonaccin lukujen ongelman alkuperäinen muotoilu.
Rekursiosta ja iteraatiosta Oletetaan että meillä on aluksi yksi vastasyntynyt kanipari, joista toinen on uros ja toinen naaras. Kanit saavuttavat sukukypsyyden yhden kuukauden ikäisinä. Kaninaaraan raskaus
Uusi näkökulma. TIEA341 Funktio ohjelmointi 1 Syksy 2005
Uusi näkökulma TIEA341 Funktio ohjelmointi 1 Syksy 2005 Aloitetaan alusta... Otetaan uusi näkökulma Haskelliin ohjelmointi laskentana kertausta toisaalta, uusia käsitteitä toisaalta helpottanee sitten
Harjoitus 1 -- Ratkaisut
Kun teet harjoitustyöselostuksia Mathematicalla, voit luoda selkkariin otsikon (ja mahdollisia alaotsikoita...) määräämällä soluille erilaisia tyylejä. Uuden solun tyyli määrätään painamalla ALT ja jokin
MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 6: Alkeisfunktioista
MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 6: Alkeisfunktioista Pekka Alestalo, Jarmo Malinen Aalto-yliopisto, Matematiikan ja systeemianalyysin laitos 28.9.2016 Pekka Alestalo,
13. Loogiset operaatiot 13.1
13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.
Lisää laskentoa. TIEA341 Funktio ohjelmointi 1 Syksy 2005
Lisää laskentoa TIEA341 Funktio ohjelmointi 1 Syksy 2005 Kertausta: Laajennettu aritmetiikka Lasketaan rationaaliluvuilla vakiot yhteen, vähennys, kerto ja jakolasku Laajennetaan sitä määrittelyillä: vakio
SQL:N PERUSTEET OSIO 03 MARKKU SUNI
SQL:N PERUSTEET OSIO 03 MARKKU SUNI SQL - KIELI FUNKTIOT ELI SAADUN TIEDON JATKOKÄSITTELYÄ MARKKU SUNI Tarkastellaan Koostefunktioita Päiväys- ja kellonaikafunktioita Aritmeettisia funktioita Merkkifunktioita
13. Loogiset operaatiot 13.1
13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.
JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?
JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
20. Javan omat luokat 20.1
20. Javan omat luokat 20.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.2 Java API Java-kielen Application Programming Interface (API)
Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang
Sisällys 20. Javan omat luokat Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.1 20.2 Java API Java-kielen Application Programming Interface (API)
Yksinkertaiset tyypit
Yksinkertaiset tyypit TIES542 Ohjelmointikielten periaatteet, kevät 2007 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 13. helmikuuta 2007 Tyypitön puhdas λ-laskento E ::= I E 1 E 2