Edit this page Backlinks This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ======= Scala @ PP ======= ===== 1. Installation ===== ===== 2. Syntax ===== 2.1. Writing functions 2.2. Function evaluation (order of parameters in function call matters !) - using the ''=>'' to delay evaluation 2.3. Conditionals - '' def f(x : Int) = if (x >= 0) x else -x'' - boolean expressions (''true'', ''false'', ''!b'', ''&&'', ''||'') - the "by value" definition using ''val'' - example using def and val against a loop Newton square root estimation * Blocks - expressions in Scala * visibility of variables in blocks * local scoping (similar to let) * semicolons (optional) * tail recursion in Scala (only direct recursive calls are optimised @tailrec) * function types (''f : Int => Int'') * anonymous functions (''(x: Int, y: Int) => x + y'', '' x => x+x'') * currying (''def f(x: Int, y: Int)(z: Int):Int = x+y+z'') * higher-order functions (mapReduce implementation) * classes and **methods** <code scala> class Rational(x: Int, y: Int) { // creates a Type as well as a constructor for the new type def a = x def b = y } val r = new Rational(1,2) </code> * ''toString'' and ''@override''