b'\n_START_ARTICLE_\nScala\n_START_SECTION_\nPavyzdys\n_START_PARAGRAPH_\nKlasikin\xc4\x97 \xe2\x80\x9eSveikas pasauli\xe2\x80\x9c programa Scala kalba:_NEWLINE_object SveikasPasauli {_NEWLINE_ def main(args: Array[String]) =_NEWLINE_   Console.println(\xe2\x80\x9eSveikas, pasauli\xe2\x80\x9c)_NEWLINE_ }_NEWLINE_Sintaks\xc4\x97 pana\xc5\xa1i \xc4\xaf Java kalb\xc4\x85. Pagrindiniai skirtumas\xc2\xa0\xe2\x80\x93 tai, kad nereikia naudoti static, void \xc5\xbeod\xc5\xbei\xc5\xb3. Bazinis \xc5\xbeodis object gr\xc4\x85\xc5\xbeina vienintel\xc4\xaf (singleton) objekt\xc4\x85._NEWLINE_Programos kompiliavimas komandin\xc4\x97je eilut\xc4\x97je, jei programa i\xc5\xa1saugota faile SveikasPasauli.scala\xc2\xa0:_NEWLINE__NEWLINE_> scalac SveikasPasauli.scala_NEWLINE_Programos paleidimas:_NEWLINE__NEWLINE_> scala -classpath . SveikasPasauli\n_START_SECTION_\nObjektin\xc4\x97s savyb\xc4\x97s\n_START_PARAGRAPH_\nScala yra gryna objektik\xc5\xa1kai orientuota kalba, tuo po\xc5\xbei\xc5\xabriu, kad kiekviena reik\xc5\xa1m\xc4\x97 yra objektas. Tipai ir objekt\xc5\xb3 elgsena apra\xc5\xa1oma klas\xc4\x97mis ir savyb\xc4\x97mis (trait).\n_START_SECTION_\nFunkcinis programavimas\n_START_PARAGRAPH_\nScala taip pat funkcin\xc4\x97 kalba\xc2\xa0\xe2\x80\x93 kiekviena funkcija yra reik\xc5\xa1m\xc4\x97. Scala palaiko anonimines funkcijas, auk\xc5\xa1to lygio funkcijas, curring ()._NEWLINE_Scala \xc5\xa1ablon\xc5\xb3 sulyginimas (pattern matching) nat\xc5\xabraliai leid\xc5\xbeia apdoroti XML duomenis, naudojant reguliarias i\xc5\xa1rai\xc5\xa1kas. Tai taip pat naudinga formuojant u\xc5\xbeklausas. \xc5\xa0ios savyb\xc4\x97s idealiai tinka aplikacij\xc5\xb3, pvz., web servis\xc5\xb3, k\xc5\xabrimui.\n_START_SECTION_\nI\xc5\xa1ple\xc4\x8diamumas\n_START_PARAGRAPH_\nPraktikoje, kuriant tam tikrai sri\xc4\x8diai specifines aplikacijas, da\xc5\xbeniausiai riekia su sritim susijusi\xc5\xb3 kalbos i\xc5\xa1pl\xc4\x97tim\xc5\xb3. Scala \xc4\xaf ta atsi\xc5\xbevelgia ir leid\xc5\xbeia paprastai sukurti naujas kalbos konstrukcijas naudojant bibliotekas:_NEWLINE_Bet kuris metodas gali b\xc5\xabti panaudojamas kaip infix arba postfix operatorius_NEWLINE_U\xc5\xbedarymas (closure) suformuojami automati\xc5\xa1kai, priklausomai nuo laukiamo tipo (adresato tipizavimas)._NEWLINE_Bendras abiej\xc5\xb3 savybi\xc5\xb3 panaudojimas leid\xc5\xbeia apra\xc5\xa1yti naujus sakinius nei\xc5\xa1ple\xc4\x8diant sintaks\xc4\x97s, ir nenaudojant \xc4\xaf makrokomandas pana\xc5\xa1ias metaprogramavimo konstrukcijas.\n_START_SECTION_\nNepriklausymas nuo platformos\n_START_PARAGRAPH_\nScala sukurta veikti kartu su tokiomis programavimo aplikacijomis kaip JRE ir. NET CLR. Bendravim\xc4\x85 su populiariausi\xc5\xb3 objekti\xc5\xa1kai orientuot\xc5\xb3 kalb\xc5\xb3 (Java ir C#) bibliotekomis m\xc4\x97ginta padaryti kiek galima paprastesn\xc4\xaf._NEWLINE_Scala naudoja tok\xc4\xaf pat\xc4\xaf kompiliavimo b\xc5\xabd\xc4\x85 (atskirtas kompiliavimas, dinaminis klasi\xc5\xb3 u\xc5\xbekrovimas), kaip ir Java, C#.'