Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import scala.math._ // sqrt je ovde
- object ScalaIsAwesome {
- def main(args: Array[String]) {
- // Primeri kako se moze suma liste naci
- def F1(A: List[Int], f: Int => Int) : Int = {
- var res = 0
- for(i <- A)
- res += f(i)
- res
- }
- def F2(A: List[Int]) : Int = A match {
- case Nil => 0
- case h :: t => h + F2(t)
- }
- val L = List(1, 6, 8)
- println(F1(L, x => x)) // Nacin 1
- println(F2(L)) // Nacin 2
- println((0 /: L) (_ + _)) // fold left
- println((1 /: L) (_ * _)) // proizvod liste
- println(L.exists(_ > 5)) // Proverava da li postoji broj veci od 5 u listi
- println(L.forall(_ > 5)) // Proverava da li su svi brojevi u listi veci od 5
- println(L.take(2)) // Prva 2 elementa
- println(L.drop(2)) // Lista bez prva 2 elementa
- println(L.first) // Vraca prvog
- println(L.last) // Vraca poslednjeg
- println(L.init) // Vraca sve bez poslednjeg
- println(L.length) // Vraca duzinu liste
- println(L.partition(_ > 5)) // Deli listu na 2, u jednoj su brojevi manji od 5, u drugoj veci od 5
- // Duzina niza sa funkcijom F1
- println(F1(L, x => 1))
- println(F1(L, _ => 1)) // Moze i ovako, jer je vrednost x-a nebitna, obratiti da se _ moze koristiti i u anonimnim funkcijama radi kraceg pisanja, pogledati naredni primer
- val S = List[String]("123", "1", "1048", "-104")
- // naredna 2 su identicna
- println(S.map(x => x.toInt))
- println(S.map(_.toInt))
- // metode se mogu i kombinovati, ovo vraca sve pozitivne brojeve kada se lista stringova S pretvori u listu integera
- println(S.map(_.toInt).filter(_ >= 0))
- // Inverzija niza
- def inv(A: List[Int]): List[Int] = A match {
- case Nil => Nil
- case h :: t => inv(t) :+ h
- }
- println(inv(L))
- class Krug(var x: Double, var y: Double, var r: Double) {
- this.x = x
- this.y = y
- this.r = r
- val pi = 3.14
- def Povrsina() = r * r * pi
- def Obim() = 2 * r * pi
- override def toString() = "Krug sa centrom (%.2f, %.2f) i poluprecnikom %.2f ima povrsinu %.2f i obim %.2f".format(this.x, this.y, this.r, this.Povrsina, this.Obim)
- def pripada(x: Double, y: Double) = sqrt((x - this.x) * (x - this.x) + (y - this.y) * (y - this.y)) <= r
- }
- val K = new Krug(0, 0, 5)
- println(K)
- val TX: Double = 5
- val TY: Double = 0.1
- println("Tacka (%.2f, %.2f) %spripada krugu K.".format(TX, TY, if(K.pripada(TX, TY)) "" else "ne "))
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement