Oder, ich installiere mir auf gleichem Weg "eclipse" (eine Java Entwickler Plattform) auf meinen Computer.
Ich starte eclipse und gehe auf "help ->install new software"
In dem neuen Fenster gebe ich folgende url ein: http://www.scala-lang.org/scala-eclipse-plugin
clicke "add" an und gebe als Namen "Scala" ein.
Im darauf folgendem Fenster wähle ich :"JDT Weaving" und "Scala IDE for Eclipse" aus und starte die Installation. Es erscheint ein Warnfenster, dass man nicht verifizierte Software installiert, einfach auf "ok" und weiter geht es.
Nachdem 'eclipse' neu gestartet wurde klicke ich auf "file-> new-> scala project".
Ich nenne das Projekt hier "Returns"
Mit Rechtsklick auf "src" öffne ich ein neues Objekt welches ich auch "Returns" nenne.
Ich gebe den Beispielcode ein.
Ganz wichtig! Ich gehe auf "run-> run as->
scala application" und im Console Fenster wird mir das Ergebnis
ausgegeben.
Wenn ich einfach auf "run" klicke bekomme ich eine Fehlermeldung, weil mein Code dann als Java-Programm interpretiert wird!
Erklärung des Codes:
Das Programm besteht aus einer Funktion (getNum), einer "main" Methode , ein Command Line Argument "args" , einem String Array als Parameter. Der Body dieser Methode besteht aus einem einfachen Aufruf der vordefinierten Methode "println" und der Deklaration zweier Variablen.
def getNum => Definition der Funktion getNum; hier ein Tupel mit dem Inhalt Integer 5, Integer 3-
def main => In diesem Fall ist args ein Parameter vom Typ Array[String] (In Scala ist Array eine class, anders als ein Java-Array)
val (a, b) => Zuweisung der Variablen a,b zu getNum; also Deklaration von a =5; b = 3
println(a) => Ausgabe (print line) , hier nur die Variable a.
Die selbe Ausgabe erreiche ich übrigens mit der rein funktionalen Sprache "Haskell" mit folgendem Code:
ghci> let getNum a b = a
ghci> getNum 5 3
5
ghci>
Noch ein weiterer Vergleich:
Ich möchte eine Liste von Zahlen multiplizieren.
Scala:
scala> List(1,2,3,4,5) map {_*3}
res0: List[Int] = List(3, 6, 9, 12, 15)
Haskell:
ghci> map (*3) [1..5]
[3,6,9,12,15]
oder:
ghci> [x*3 | x <- [1,2,3,4,5]]
[3,6,9,12,15]
Ich werde versuchen in nächster Zeit eine Übersetzung eines, meiner Meinung nach, sehr guten Haskell Tutorials hier online zu stellen.