GNU Free Documentation License . .

Scala ( )

: ,
Scala
Scala logo.png
:

: , -,

:

2003

():

:

2.9.2 (14 2012)

:

, , ,

:

Java, Pizza[1] , Haskell, Erlang, Standard ML, C#, Objective Caml, Smalltalk, Scheme

:

www.scala-lang.org

Scala  , , - .

2003 (. Martin Odersky), Java .Net. (. James Strachan (programmer)), Groovy, Scala Java[2].

[]

20012004 EPFL. , . 2 :

  1. , , . , , - .
  2. , - . Scala  , . , Scala, .

Scala JVM 2004 .NET 2004 . , .

[]

Scala . .

Scala Java C#. Sather (.). Smalltalk . BETA , , , . Scala SML OCaml, . Scala  Pizza (.). Pizza, Scala Java VM, , , , . Pizza Java, Scala  , . Scala    .

[]

  • Scala- Java-, Java-.
  • Scala   , ,   .
  • Scala  ,   .
  • Scala , .
  • trait-.
  • .
  • XML-.
  • , , Scala, .
  • Scala (views)
  • .
  • Scala Java .NET.

[] -

Scala - , Smalltalk:   ,   . , x+y x.+(y), + x - y . : 1+2. (1).+(2). , , Scala . , 1.+(2) 1.,+ 2, 1. 1 , Double Int.[3]

[]

  . . . XML c .

[]

, , . , , , , .

Scala   (views). trait-. Scala - Haskell . , , .

[] .Net JVM

.Net JVM   , , , , . Scala Java, .NET.

[]

Java . , .

 object HelloWorld {
  def main(args: Array[String]) =
    Console.println(", !")
 }

Java Scala, ( , ). , , . «-» ().

 class PrintOptions
 {
    public static void main(String[] args)
    {
      System.out.println(" :");
      for (String arg: args) if (arg.startsWith("-")) System.out.println(" " + arg.substring(1));
    }
 }
 object PrintOptions
 {
   def main(args: Array[String]) : Unit =
   {
     println(" :")
     for (arg <- args if arg startsWith "-") println(" " + (arg substring 1))
   }
 }
 //    :
 object PrintOptions
 {
   def main(args: Array[String]) : Unit =
     println(" :" +: (args withFilter (_ startsWith "-") map (" " + _.drop(1))) mkString "\n")
 }

, Scala , . , («»  «Singleton»).

, , .

 object Main {
   def main(args: Array[String]) {
     try {
       val elems = args map Integer.parseInt
       println(" : " + elems.foldRight(0) (_ + _))
     } catch {
       case e: NumberFormatException =>
         println("  .   : scala Main <1> <2> ... ")
     }
   }
 }

map . Integer.parseInt () elems. foldRight .

[] Java

Scala Java. java.lang , .

[]

: ,   .

Java Date DateFormat. , , Java :

 import java.util.{Date, Locale}
 import java.text.DateFormat
 import java.text.DateFormat._
 
 object FrenchDate {
   def main(args: Array[String]) {
     val now = new Date
     val df = getDateInstance(LONG, Locale.FRANCE)
     println(df format now)
   }
 }

[] .

[]

[]