Please note, this is a STATIC archive of website www.tutorialspoint.com from 11 May 2019, cach3.com does not collect or store any user information, there is no "phishing" involved.
Tutorialspoint

Compile and Execute Scala Online

object HelloWorld {
   def main(args: Array[String]) {
      println("Hello, world!")
   }
}

Compile and Execute Scala Online

object HelloWorld {
    
    type Word = String
    type Occurrences = List[(Char, Int)]
    
    def wordOccurrences(w: Word): Occurrences = (w.toLowerCase().groupBy((element: Char) => element) map {
        case (k, v) => (k, v.length)
    }).toList
    
}

Compile and Execute Scala Online

object HelloWorld {
   def main(args: Array[String]) {
      println("Hello, world!")
   }
}

data

object HelloWorld {
   def main(args: Array[String]) {
      println("Hello, world!")
   }
}

Compile and Execute Scala Online

object HelloWorld {
   def main(args: Array[String]) {
      println("Higher Order Functions Examples: ")
      
      // combining any arithmatic operation
      println(sum(1,2,5, (a,b)=>a+b))
      
      // or can be done by lambda expressions
      println(sum(3,5,9, _+_))
   }
   
   def sum(a: Int, b: Int, c: Int, f :(Int, Int) => Int): Int = f(f(a,b),c)
}

Compile and Execute Scala Online

object HelloWorld {  // tail recursion optimisation, inak tiez Tail calls

  def add(a:Int, b: Int):Int = {  // klasicka rekurzivna funkcia
    if (a == 0) b;                // return nemusime pisat, sme vo funckionalnom svete, posledny vyraz je vystupna hodnota
    else add(a-1, b)+1;
  }
  def add1(a:Int, b: Int):Int = {  // iterativna verzia
    if (a == 0) b;
    else add1(a-1, b+1);          // po tomto volani sa nerobi nic, takze je to goto
  }
  def fib(n : Int) : Int = {      // sucin cisel 1.2. ... n
     if (n < 2) 1 
     else fib(n-2) + fib(n-1);
  }    
  def fact(n: Int): Int = {
      def fact(n: Int, acc: Int): Int =
         if (n <= 0) acc
         else fact(n-1, n*acc)
      fact(n, 1)
  }
  def sum(n: Int): Int = {      // sucet cisel 1+2+3+ ... +n
     @annotation.tailrec
     def sum(n: Int, acc: Int): Int =
        if (n <= 0) acc
        else sum(n-1, n+acc)    // akumulatorova technika
     sum(n, 0)
  }    
  def collatz(n : Int): Int = {  // vrati dlzku collatzovej postupnosti zacinajucej od n
    if (n == 1) 0
    else if (n % 2 == 0) 1+collatz(n/2)
    else 1+collatz(3*n+1)
  }
  def collatz1(n : Int): Int = {  // vrati dlzku collatzovej postupnosti zacinajucej od n
    @annotation.tailrec
    def collatz1(n : Int, count : Int): Int = {  // vrati dlzku collatzovej postupnosti zacinajucej od n
      if (n == 1) count
      else if (n % 2 == 0) collatz1(n/2, count+1)
      else collatz1(3*n+1, count+1)
    }
    collatz1(n, 0)
  }

  def main(args: Array[String]) {
     println(add(10000, 10000))  // toto padne na stacku
     // println(add(100000, 100000))  // toto padne na stacku
     val milion = 1000000000
     println(add1(milion , milion) + "=" + (2*milion))  // Gaussov vzorec)
     println("fibs=" + List.range(1, 20).map { fib })
     println("facts=" + List.range(1, 20).map { fact  })
     println("sums=" + List.range(1, 20).map { sum  })
     val stoLitrov = milion/10
     println(sum(stoLitrov) + "=" +  (stoLitrov*(stoLitrov+1)/2))  // Gaussov vzorec
     
     println(List.range(1,1000).map { n => collatz(n) })
     val desatLitrov = 10000
     //println(List.range(1,desatLitrov).map { n => collatz(n) }.max) // OutOfMemoryError: GC overhead limit exceeded
     // println(List.range(1,desatLitrov).map { n => collatz1(n) }.max)
     var max = -1
     for(i <- 1 to stoLitrov) {
       val len = collatz1(i)
       if (len > max)
         max = len
     }
     println(max)
    }
}

Compile and Execute Scala Online

object HelloWorld {
  
  def addN(n: Int): Int => Int = (x: Int) => {
    x + n
  }

  def iteruj(n: Int, f: Int => Int): Int => Int = n match {
    case 0 => (x: Int) => x
    case _ => (x: Int) => iteruj(n - 1, f)(f(x))
  }

  def logaritmickyIteruj(n: Int, f: Int => Int): Int => Int = n match {
    case 0 => (x: Int) => x
    case _ => if (n % 2 == 0) (x: Int) => iteruj(n / 2, f)(iteruj(n / 2, f)(x)) else (x: Int) => iteruj(n - 1, f)(f(x))
  }

  type realnaFunkcia = Double => Double

  def kompozicia(f: realnaFunkcia, g: realnaFunkcia): realnaFunkcia = {
    (x: Double) => f(g(x))
  }

  def iteracia(n: Int, f: realnaFunkcia): realnaFunkcia = n match {
    case 0 => (x: Double) => x
    case _ => kompozicia(f, iteracia(n - 1, f))
  }
  
  def main(args: Array[String]): Unit = {
    println(iteruj(10,addN(5))(4))
    println(iteruj(10,addN(10))(4))
  }  
}

Compile and Execute Scala Online

object HelloWorld {
  
  def addN(n: Int): Int => Int = (x: Int) => {
    x + n
  }

  def iteruj(n: Int, f: Int => Int): Int => Int = n match {
    case 0 => (x: Int) => x
    case _ => (x: Int) => iteruj(n - 1, f)(f(x))
  }

  def logaritmickyIteruj(n: Int, f: Int => Int): Int => Int = n match {
    case 0 => (x: Int) => x
    case _ => if (n % 2 == 0) (x: Int) => iteruj(n / 2, f)(iteruj(n / 2, f)(x)) else (x: Int) => iteruj(n - 1, f)(f(x))
  }

  type realnaFunkcia = Double => Double

  def kompozicia(f: realnaFunkcia, g: realnaFunkcia): realnaFunkcia = {
    (x: Double) => f(g(x))
  }

  def iteracia(n: Int, f: realnaFunkcia): realnaFunkcia = n match {
    case 0 => (x: Double) => x
    case _ => kompozicia(f, iteracia(n - 1, f))
  }
  
  def main(args: Array[String]): Unit = {
    println(iteruj(10,addN(5))(4))
    println(iteruj(10,addN(10))(4))
  }  
}

Compile and Execute Scala Online

import scala.collection.mutable.ArrayBuffer
import scala.collection.mutable.ListBuffer
object HelloWorld {
   def main(args: Array[String]) {
      val rdd = "c71amt"
      val parsed = rdd.replaceAll("[0-9$&+,:;=?@#|'<>.-^*()%!]","")
      val dictionary = List("camt", "tamc", "mact", "cmat", "catm")
      val list = parsed.toList
      var count = list.length*(list.length-1).toInt
      var ab = new ListBuffer[String]()
      var printer = new ListBuffer[String]()
      while(count > 0){
           var random = scala.util.Random.shuffle(list)
           var wordtomatch = random.mkString
           ab += wordtomatch
           ab = ab.distinct
            if(dictionary.contains(wordtomatch) == true){
                printer += wordtomatch
                count=count-1;
            }
            }
        printer = printer.distinct
        printer.foreach(println)
       }
}

beutlfulbjksd

object Demo {
   def main(args: Array[String]) {
      var a = 10;
      
      // An infinite loop.
      while( true ){
         println( "Value of a: " + a );
      }
   }
}

Advertisements
Loading...

We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy.