Helsingin yliopisto
/ tietojenkäsittelytieteen laitos
/ Ohjelmointitekniikka (Scala)
/ © Arto Wikla 2010
Ohjelmointitekniikka (Scala): kurssimateriaalia
Muutettu viimeksi 28.4.2010
/
Sivu luotu 18.1.2010
Kurssi perustuu oppikirjaan
Odersky, Spoon, Venners:
Programming in Scala. Artima Press 2008.
Kirjan ohjelmaesimerkkejä ja muuta tietoa on julkaistu sivulla
http://booksites.artima.com/programming_in_scala.
Esimerkeillä on
Apache 2.0 -lisenssi,
joten niitä voidaan käyttää melkoisen vapaasti tälläkin kurssilla, ks.
esimerkkien sisällysluettelo.
Hakasulkeissa olevat numerot viittaavat oppikirjan lukuihin.
Lukujen numerot vastaavat oppikirjan lukujen numerointia.
Sisällöissä on eroja.
- Johdantoa
- Pikku perusteita
- Pikku jatkeita
- Luokista ja olioista
- Perustyyppejä ja operaatioita
- Funktionaalisia olioita ja vähän muutakin
- Ohjausrakenteita
- Funktiot ja sulkeumat
- Kontrolliabstraktiot
- Periytyminen
- Scalan luokkahierarkia
- Piirreluokat eli "traitit"
- Pakkauksista ja importista
- Väittämät ja testaus
- Case-luokat ja hahmontunnistus
[Case classes and pattern matching support you when writing regular,
non-encapsulated data structures. These two constructs are particularly
helpful for tree-like recursive data.]
- Listat
- Kokoelmista
- Tilalliset oliot
- Tyyppiparametroinnista
[Type parameterization allows you to write generic classes and traits. For
example, sets are generic and take a type parameter: they are defined as
Set[T]. As a result, any particular set instance might be be a Set[String],
a Set[Int], etc. -- but it must be a set of something. Unlike Java, which
allows raw types, Scala requires that you specify type parameters.]
- Abstraktit jäsenet
- Implisiittiset tyyppimuunnokset
[Implicits are a powerful, code-condensing feature of Scala.
They can make code confusing if they are used too frequently.]
- Vielä listoista
- Vielä for-lauseesta
- "Ekstraktorit"
[Extractors let you define your own kinds of patterns, which need not correspond
to the type of the expressions you select on. This gives you more
flexibility in the kinds of patterns you can use for matching. In effect it's like
having different possible views on the same data. It also gives you a layer
between a type's representation and the way clients view it. This lets you do
pattern matching while maintaining representation independence, a property
which is very useful in large software systems.]
- Annotaatiot
[Annotations are structured information added to program source code.]
- XML
- Modularisuudesta
- Arvojen yhtäsuuruudesta
- Javaa Scalassa ja Scalaa Javassa
- Aktoreista ja rinnakkaisuudesta lyhyesti
- "Combinator Parsing"
[Jäsentäjiä omille kielille.]
- GUIsta lyhyesti
- SCell-taulukkolaskentaSkriptit Unixissa ja Windowsissa
by WebCounter
(15.3.2010)