Programmazione Funzionale e Parallela

Corso di Laurea in Ingegneria Informatica e Automatica - A.A. 2017-2018

HomePage | Avvisi | Diario lezioni | Materiale didattico | Esami | Forum | Login

Revision [829]

Last edited on 2017-10-19 21:31:39 by CamilDemetrescu
Additions:
println("Tempo speso nel corpo del mywhile: " + MyWhile.time + " ms")
Deletions:
println("Tempo speso nel corpo del mywhile: " + MyWhile.time)


Revision [828]

Edited on 2017-10-19 21:31:07 by CamilDemetrescu
Additions:
Esempio di uso:
> scalac MyWhile.scala
> scala MyWhile uno due tre quattro
arg: uno
arg: due
arg: tre
arg: quattro
Tempo speso nel corpo del mywhile: 2.0


Revision [827]

Edited on 2017-10-19 19:35:44 by CamilDemetrescu
Additions:
Car("Open Zafira", 2008, "Anna"),
Car("Audi Quattro", 2013, "Ron"),
Car("Rover 220 SDI", 1999, "Anna"))
Deletions:
Car("Open Zafira", 2008, "Anna"),
Car("Audi Quattro", 2013, "Ron"),
Car("Rover 220 SDI", 1999, "Anna"))


Revision [826]

Edited on 2017-10-19 19:35:37 by CamilDemetrescu
Additions:
Car("Open Zafira", 2008, "Anna"),
Car("Audi Quattro", 2013, "Ron"),
Car("Rover 220 SDI", 1999, "Anna"))
Deletions:
Car("Open Zafira", 2008, "Anna"),
Car("Audi Quattro", 2013, "Ron"),
Car("Rover 220 SDI", 1999, "Anna"))


Revision [825]

Edited on 2017-10-19 19:34:29 by CamilDemetrescu
Additions:
==Esercizio 4: nuovi costrutti in Scala==
%%(java;MyWhile.scala)
object MyWhile extends App {
var time = 0.0 // tempo totale speso nel corpo del mywhile
// definizione di un nuovo costrutto in Scala
def mywhile(test: =>Boolean)(body: =>Unit):Unit = {
if (!test) ()
else {
val start = System.currentTimeMillis()
body
time += System.currentTimeMillis()-start
mywhile(test)(body)
}
// esempio di uso del costrutto
var i = 0
mywhile(i < args.size) {
println("arg: "+args(i))
i += 1
println("Tempo speso nel corpo del mywhile: " + MyWhile.time)


Revision [824]

Edited on 2017-10-19 19:32:44 by CamilDemetrescu
Additions:
implicit def intToMioInt(i:Int) = MioInt(i) // questo serve per rendere possibile 12 mcd 8
implicit def mioIntToInt(i:MioInt) = i.x // questo serve per rendere possibile MioInt(10) + 7
Deletions:
implicit def intToMioInt(i:Int) = MioInt(i)
implicit def mioIntToInt(i:MioInt) = i.x


Revision [823]

Edited on 2017-10-19 19:31:44 by CamilDemetrescu
Additions:
Cosa bisognerebbe scrivere per poter compilare ed eseguire il seguente programma di test?
==Esercizio 3: ancora conversioni implicite==
Cosa bisognerebbe scrivere per poter compilare ed eseguire il seguente programma di test?
import A2._
object A2Main extends App {
val r1:Int = 12 mcd 8
println(r1+" [corretto=4]")
val r2:Int = 21 mcd 14
println(r2+" [corretto=7]")
val r3 = MioInt(10) + 7
println(r3+" [corretto=17]")
object A2 {
implicit def intToMioInt(i:Int) = MioInt(i)
implicit def mioIntToInt(i:MioInt) = i.x
case class MioInt(x:Int) {
def mcd(y:Int):Int =
if (y==0) x else y mcd x%y
Deletions:
Cosa bisognerebbe fare per poter compilare ed eseguire il seguente programma di test?


Revision [822]

Edited on 2017-10-19 19:29:33 by CamilDemetrescu
Additions:
==Esercizio 2: conversioni implicite==
Cosa bisognerebbe fare per poter compilare ed eseguire il seguente programma di test?
%%(java;Test.scala)
import MiaStringa._
object Test extends App {
val s = "ciao" concatenaCon "pippo"
println(s)
%%(java;MiaStringa.scala)
import scala.language.implicitConversions
object MiaStringa {
case class MiaStringa(x:String) {
def concatenaCon(y:String) = x+y
implicit def stringToMiaStringa(s:String) = MiaStringa(s)


Revision [821]

Edited on 2017-10-19 19:27:36 by CamilDemetrescu
Additions:
==Esercizio 1: data analytics==
Deletions:
==Esercizio di esame==


Revision [820]

Edited on 2017-10-19 19:26:23 by CamilDemetrescu
Additions:
o => cars.filter(_.owner==o)
.reduce((a,b) => if (a.year .year
Deletions:
o => cars.filter(_.owner==o).
reduce((a,b)=>
if (a.year else b).year


Revision [819]

Edited on 2017-10-19 19:21:47 by CamilDemetrescu
Additions:
Soluzione:
%%(java;A1.scala)
object A1 {
def select(cars:List[Car], owners:List[String]):List[Int] = {
owners.map(
o => cars.filter(_.owner==o).
reduce((a,b)=>
if (a.year else b).year
)
}


Revision [818]

Edited on 2017-10-19 19:21:05 by CamilDemetrescu
Additions:
%%(java;A1Main.scala)
Car("Open Zafira", 2008, "Anna"),
Car("Audi Quattro", 2013, "Ron"),
Car("Rover 220 SDI", 1999, "Anna"))
Deletions:
%%(A1Main.scala)
Car("Open Zafira", 2008, "Anna"),
Car("Audi Quattro", 2013, "Ron"),
Car("Rover 220 SDI", 1999, "Anna"))


Revision [817]

Edited on 2017-10-19 19:20:43 by CamilDemetrescu
Additions:
Car("Open Zafira", 2008, "Anna"),
Car("Audi Quattro", 2013, "Ron"),
Car("Rover 220 SDI", 1999, "Anna"))
Deletions:
Car("Open Zafira", 2008, "Anna"),
Car("Audi Quattro", 2013, "Ron"),
Car("Rover 220 SDI", 1999, "Anna"))


Revision [816]

The oldest known version of this page was created on 2017-10-19 19:20:13 by CamilDemetrescu
Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki
Page was generated in 0.0260 seconds