object HelloWorld { def main(args: Array[String]) { println("Hello, world!") } }
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 }
object HelloWorld { def main(args: Array[String]) { println("Hello, world!") } }
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) }
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) } }
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)) } }
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)) } }
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) } }
object Demo { def main(args: Array[String]) { var a = 10; // An infinite loop. while( true ){ println( "Value of a: " + a ); } } }
We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy. Accept Learn more