- Mitä seuraava tulostaa:
val lista = for (i <- 1 to 3; j <- i to 6) yield(j)
for (luku <- lista; if luku%2 != 0)
println(luku)
Miksi? Mistä on kysymys? Miten kaikki käy?
Pelkästä tulostuksesta ei saa pisteitä!
- Mitä seuraava tulostaa:
val l = List(3, 1, 4, 2, 5)
var a = 0; var b = 1
l.foreach(x => {a+=x;b*=x})
println(a+" "+b)
Miksi? Mistä on kysymys? Miten kaikki käy?
Pelkästä tulostuksesta ei saa pisteitä!
- Tee seuraavalle funktiolle Curry-muunnos funktiona g:
def f(n: String, i: Int) {println(n + ": " + i)}
Selitä, mistä on kysymys ja anna myös esimerkit f:n ja g:n
kutsusta.
- Selitä mistä on kysymys ohuissa (thin) ja
rikkaissa (rich) rajapinnoissa. Millä tavoin Scala-kieli
helpottaa rikkaiden rajapintojen ohjelmointia? Anna
esimerkkejä ohjelmahahmotelmina ja Scalan valmiista
kalustosta.
- Mitä seuraava tulostaa:
abstract class A {def a: String}
class TA extends A {override def a = "TA"}
trait B extends A {abstract override def a = "B" + super.a + "B"}
trait C extends A {abstract override def a = "C" + super.a}
trait D extends A {abstract override def a = super.a + "D"}
val s = new TA with B with C with D
println(s.a)
val u = new TA with C with B with D
println(u.a)
val w = new TA with D with B with C
println(w.a)
val x = new TA with D with C with B
println(x.a)
Miksi? Mistä on kysymys? Miten kaikki käy?
Pelkästä tulostuksesta ei saa pisteitä!