Abstraktit tietotyypit – jatkoa TIEA341 Funktio-ohjelmointi 1 Syksy 2005.

Slides:



Advertisements
Samankaltaiset esitykset
2.8.3 Abstraktit tietotyypit
Advertisements

Abstraktit tietotyypit TIEA341 Funktio-ohjelmointi 1 Syksy 2005.
ENY-c2003 Vesi- ja ympäristötekniikka
NR-ristikot ja massiivisauvarakenteet
Tyyppiluokat II ­ konstruktoriluokat, funktionaaliset riippuvuudet ­
3 Reaktiotyyppejä ja -mekanismeja
TU KERTAUSTA ja vanhoja tenttikysymyksiä 1. välikoetta varten
Kappale 9: Raha ja rahapolitiikka, osa II: Taylorin sääntö ja QE
Digitalisaation vaatima osaaminen julkisessa hallinnossa
Kieli ja tyyli yo-esseessä
. Haemme S-ryhmän hankinta- ja logistiikkayhtiö Inex Partners Oy:n Limingan terminaaliin KESÄTYÖNTEKIJÄÄ Kuljetusesimiesten loman sijaiseksi toukokuun.
Kuntaliiton kehittämistoiminnan vaikuttavuus
Immuunijärjestelmä – lymfaattiset kudokset
LASTEN EKG -AIHEITA TUTKIMUKSELLE
Töö perevägivallaga Soomes – fookus toimepanijatega töötamisel
JOUKKUEEN HARJOITUSSUUNNITELMA JAKSO 1
Yritysten arviot pääkaupunkiseudun kuntaliitosten välillisistä yritysvaikutuksista, samaa mieltä olevien prosenttiosuus.
Liikkuminen ja hyvinvoiva nuori Raija Oksanen, UKK-instituutti
Päihdeongelmainen potilas terveysasemalla
Sähkökemia Sähköä kemiallisesta energiasta: Galvaaninen kenno
Vertailuprosentti Sama paita maksoi Z-kaupassa 50 euroa ja Y-kaupassa 60 euroa. a) Kuinka monta prosenttia halvempi paita oli Z-kaupassa kuin Y-kaupassa?
Kappale 6: Raha, hinnat ja valuuttakurssit pitkällä ajalla
Rakennusperinnön hoidon rahoitusmahdollisuus maaseudun kehittämisrahoituksella Kulttuuriympäristön ja rakennusperinnön hoidon seminaari, museokeskus.
SAPA lausuntoyhteenveto
Toscana e Piemonte, La bella Italia ! Benvenuti !
Tahdonilmaisut.
Sivuston luominen oppilasryhmän käyttöön
tunti – Liiketoimintasuunnitelma
WhatsApp merger case Niklas Katila,
Presidenttivalmennus 1
Bridgekurssi BK-Slam ª©¨§
3 HAVAITSEMINEN PS3 LAJM.
9. Juutalaisuuden historiaa ja suuntauksia
Osallistuva Espoo -kehitysohjelman tuloksia 2015
Free Being Me – Ihan Vapaasti Mä
Haapaveden-Siikalatvan seutukunta
Videoinstallaatiot / mediainstallaatiot) – liikkuvaa kuvaa tilassa!
äi7 puhe- ja vuorovaikutustaitojen syventäminen
ET POPS 2014 Eero Salmenkivi Opettajankoulutuslaitos.
DigiVälkky-hanke
Puhdasoppisuuden aika Suomen kirkossa
VENÄJÄ Pinta-ala: km² Presidentti: Vladimir Putin
Maski-turnaus 2015.
Tarinoita armosta ja armottomuudesta –työpaja
Metallisidos.
YHDISTEET.
Oppimisalgoritmit ja tekoäly
4. Teho ja hyötysuhde kuvaavat energiansiirtoa
4. Kovalenttinen sidos ja metallisidos
Videosta Youtube: X-Rays by Wilhelm Conrad Röntgen (Milestones of Science) Miksi näkyvä valo läpäisee lasin,
Tentti.
Eri väestöryhmien taloudellinen asema
Havainnointia tukevia kysymyksiä
Kevätjuhlalaulut.
seksuaalisuuden ääripäät
20€ 20€ 20€ Puhtaat matot kevään juhliin Matto kuin matto vain
Puulustotutkimuksen opetuksia 3
Miten koulutamme tulevaisuuden tekijät
SUBITIZING <alaotsikko> Template updated: date:
2 Reaktioyhtälö Reaktion symbolinen ilmaisu Reaktioyhtälö reseptinä
Digitaalisen yo-kokeen ohjeistus
1. Millaisia asioita kilpailukykyä mittaavissa tutkimuksissa mitataan
Mekaaniset koneet: vipulaskut
Jäteveden käsittely Aktiivilieteprosessi Prosessin toiminta
Voima ja liike FY01.2.
4. Lecture Steps of programming decision problems see e.g. Eidhovenin university, Describe the management probem verbally (e.g.
6. Lecture 12:15-12:50 Add nutrient leaching to the dynamic problem, and optimize fertilization pattern in the case that a farmer covers the cost of externalities.
Perussanastoa.
Tapahtumajärjestäjän vastuu turvallisuudesta
Esityksen transkriptio:

Abstraktit tietotyypit – jatkoa TIEA341 Funktio-ohjelmointi 1 Syksy 2005

Viime luennolla ● ADT-käsite ● Pino ● Taulukko

Jono module Queue (Queue (), empty, isEmpty, enqueue, dequeue, peek) where empty :: Queue a isEmpty :: Queue a -> Bool enqueue :: a -> Queue a -> Queue a dequeue :: Queue a -> Queue a peek :: Queue a -> a

Jonon toteutus newtype Queue a = Q [a] empty = Q [] isEmpty (Q q) = null q enqueue e (Q q) = Q (e : q) dequeue (Q q) = Q (init q) peek (Q q) = last q Tehoton! dequeue ja peek ovat O(n)!

Jonon toteutus – jekku tekee hyvää data Queue a = Q [a] [a] empty = Q [] [] isEmpty (Q qb qf) = null qb && null qf enqueue e (Q qb qf) = Q (e : qb) qf dequeue (Q qb (_:qf)) = Q qb qf dequeue (Q []) = dequeue (Q [] (reverse qb)) peek (Q _ (e:_)) = e F. W. Burton: “An efficient implementation of FIFO queues”, Information Processing Letters, vol. 14, pp. 205–206, Kaksi listaa: - lista, jonka alku on jonon loppu - lista, jonka alu on jnon alku -tarvittaessa siirretään listasta toiseen

Joukot module Set (Set, empty, isEmpty. memb, unit, union, intersection, difference, subset) where empty :: Ord a => Set a isEmpty :: Ord a => Set a -> Bool memb :: Ord a => a -> Set a -> Bool unit :: Ord a => a -> Set a union, intersection, difference :: Ord a => Set a -> Set a -> Set a subset :: Ord a => Set a -> Set a -> Bool

Joukot – toteutus import BinTree newtype Set a = Set (BinTree a ()) empty = EmptyTree isEmpty (Set (BTEmpty)) = True isEmpty (Set (BTNode _ _ _ _)) = False memb e (Set s) = case BinTree.lookup e s of Just () -> True Nothing -> False...

Äärelliset kuvaukset module Map (Map, empty, isEmpty, hasKey insert, lookup) where empty :: Ord a => Map a b isEmpty :: Ord a => Map a b -> Bool hasKey :: Ord a => a -> Map a b -> Bool insert :: Ord a => a -> b -> Map a b -> Map a b lookup :: Ord a => a -> Map a b -> Maybe b

Vakiokirjastossa... ● module Array (eli module Data.Array) ● module Data.Set ● module Data.Map ● module Data.Queue

Haskellin vakiokirjaston taulukkotyyppi ● Sukua edellä esitellylle taulukkotyypille ● Mutta: pinnan alla tavallinen taulukko! – päivitys aiheuttaa koko taulukon kopioinnin! – siksi ei niin kovin käyttökelpoinen ● modulissa Array (sama kuin Data.Array) ● myös moniulotteiset taulukot mahdollisia ● tarkemmin:

module Data.Set ● Ks.

module Data.Map ● Ks.