Tutorial on Writing Modular Programs in Scala
Martin Odersky and Gilles Dubochet 13 September 2006
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 1 of 45
Tutorial on Writing Modular Programs in Scala Martin Odersky and - - PowerPoint PPT Presentation
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 13 September 2006 Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 1 of 45 Welcome to the Scala tutorial at JMLC 2006 A half-day
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 1 of 45
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 2 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 3 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Scala as a Java clone Pushing the envelope Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 4 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Scala as a Java clone Pushing the envelope Hands-on
class PrintOptions { public static void main(String[] args) { System.out.println("Opts selected:"); for (int i = 0; i < args.length; i++) if (args[i].startsWith("-")) System.out.println( " "+args[i].substring(1)); } }
class PrintOptions { def main(args: Array[String]: Unit) = { System.out.println("Opts selected:") for (val arg <- args) if (arg.startsWith("-")) System.out.println( " "+arg.substring(1)) } }
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 5 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Scala as a Java clone Pushing the envelope Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 6 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Scala as a Java clone Pushing the envelope Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 7 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Scala as a Java clone Pushing the envelope Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 8 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Scala as a Java clone Pushing the envelope Hands-on
scala.Any scala.AnyRef (java.lang.Object) scala.AnyVal scala.ScalaObject scala.Double scala.Float scala.Long scala.Int scala.Short scala.Byte scala.Char scala.Unit scala.Boolean scala.Seq scala.List scala.Option
… (other Scala classes)…
java.lang.String
… (other Java classes)…
scala.Null scala.Nothing
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 9 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Scala as a Java clone Pushing the envelope Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 10 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Scala as a Java clone Pushing the envelope Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 11 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Scala as a Java clone Pushing the envelope Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 12 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Scala as a Java clone Pushing the envelope Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 13 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Case classes Matching on case classes Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 14 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Case classes Matching on case classes Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 15 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Case classes Matching on case classes Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 16 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Case classes Matching on case classes Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 17 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Case classes Matching on case classes Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 18 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Case classes Matching on case classes Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 19 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Case classes Matching on case classes Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 20 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Case classes Matching on case classes Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 21 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Functions Functions for modularisation Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 22 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Functions Functions for modularisation Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 23 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Functions Functions for modularisation Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 24 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Functions Functions for modularisation Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 25 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Functions Functions for modularisation Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 26 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Functions Functions for modularisation Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 27 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Functions Functions for modularisation Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 28 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Mixin inheritance Using traits Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 29 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Mixin inheritance Using traits Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 30 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Mixin inheritance Using traits Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 31 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Mixin inheritance Using traits Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 32 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Mixin inheritance Using traits Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 33 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Mixin inheritance Using traits Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 34 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Mixin inheritance Using traits Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 35 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Defining higher-order function Higher-order functions on lists Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 36 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Defining higher-order function Higher-order functions on lists Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 37 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Defining higher-order function Higher-order functions on lists Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 38 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Defining higher-order function Higher-order functions on lists Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 39 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Defining higher-order function Higher-order functions on lists Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 40 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Defining higher-order function Higher-order functions on lists Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 41 of 45
Meeting Scala Pattern matching Functions Mixins Higher-order Functions Defining higher-order function Higher-order functions on lists Hands-on
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 42 of 45
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 43 of 45
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 44 of 45
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 45 of 45