Język Programowania Scala: Język programowania

Scala – język programowania łączący cechy języków funkcyjnych i obiektowych.

Scala działa na Wirtualnej Maszynie Javy, a także na Java Platform, Micro Edition Connected Limited Device Configuration i platformie .NET. Nazwa ma za zadanie podkreślać skalowalność języka, stąd Scala (z ang. scalable language).

Scala
Logo języka Scala
Logo języka
Pojawienie się

2003

Paradygmat

funkcyjny, obiektowy

Aktualna wersja stabilna

3.0.2 (1 września 2021; ponad 2 lata temu)

Twórca

Martin Odersky

Licencja

Licencja BSD

Strona internetowa

Scala została stworzona w 2001 roku na Politechnice Federalnej w Lozannie przez Martina Odersky'ego. Język ten został upubliczniony w styczniu 2004 roku na platformie Javy, a w czerwcu tego samego roku na platformie .NET. Wersja druga została udostępniona w marcu 2006 roku.

Wspierane paradygmaty

Scala wspiera programowanie funkcyjne. Składnia pozwala zwięźle definiować funkcje anonimowe, obsługuje funkcje wyższego rzędu, zagnieżdżanie funkcji i currying. Użycie słowa kluczowego lazy opóźnia przypisanie wartości do chwili, gdy wartość ta będzie potrzebna. W języku Scala większość konstrukcji językowych definiuje wyrażenia (posiadające wartość). Scala pozwala definiować wyrażenia przy pomocy słów kluczowych def, var oraz val. Słowo def pozwala na zdefiniowanie wyrażenia, którego wartość będzie wyliczana zawsze w chwili odwołania się do tego wyrażenia (np. def doubleMe(x: Int) = x * 2). Przy pomocy słowa var można zdefiniować wyrażenie, którego wartość może podlegać zmianom (ang. mutable - np. var x = 2; x = 4). Słowo kluczowe val pozwala zdefiniować wartości, które nie podlegają zmianom (ang. immutable). Również takie konstrukcje jak if else, match/case, czy for/yield są wyrażeniami.

Scala ma "klasy przypadków" oraz wbudowane wsparcie dla dopasowywania wzorców. Pozwala to korzystać z algebraicznych typów danych, używanych w wielu funkcyjnych językach programowania. Język ten w umiejętny sposób łączy cechy języka obiektowego (klasy, dziedziczenie, polimorfizm, ...) z cechami języka funkcjonalnego (funkcje wyższego rzędu, liczne kolekcje niemodyfikowalne, currying, dopasowanie wzorców, ...). Oba paradygmaty są równie mocno wspierane.

Rekurencja ogonowa nie jest całkowicie obsługiwana, ponieważ maszyna wirtualna Javy nie udostępnia takiej możliwości. W prostych przypadkach kompilator Scali może optymalizować rekurencję ogonową do postaci pętli.

Implementacja prostego algorytmu sortującego (podobnego do quicksort) w podejściu programowania funkcyjnego może wyglądać następująco:

def qsort(list : List[Int]): List[Int] = list match {   case Nil => Nil   case pivot :: tail => {     val (smaller, rest) = tail partition (_ < pivot)     qsort(smaller) ::: pivot :: qsort(rest)   } } 

Przykłady

"Hello World"

Program "Hello World" napisany w Scali ma następującą postać:

object HelloWorld {   def main(args: Array[String]): Unit = {     println("Hello, world!")   } } 


Wybrane rozwiązania napisane w Scali

Przypisy

Linki zewnętrzne

Tags:

Język Programowania Scala Wspierane paradygmatyJęzyk Programowania Scala PrzykładyJęzyk Programowania Scala Wybrane rozwiązania napisane w ScaliJęzyk Programowania Scala PrzypisyJęzyk Programowania Scala Linki zewnętrzneJęzyk Programowania Scala.NETConnected Limited Device ConfigurationJava Platform, Micro EditionJęzyk programowaniaProgramowanie funkcyjneProgramowanie obiektoweSkalowalnośćWirtualna maszyna Javy

🔥 Trending searches on Wiki Polski:

Kowloon Walled CityPaliwo syntetyczneLista państw świataSzczecinAudi A6PetersburgProdukt krajowy bruttoBronisław KomorowskiJohn F. KennedyKatowiceNKWDChrześcijaństwoJan Filip LibickiJelena RybakinaJanusz Korwin-MikkeMetro w WarszawieUlrich von JungingenDassault Mirage 2000KiłaDidiusz JulianusJerozolimaAdam NawałkaŁużycePrawo i SprawiedliwośćOlsztynEliminacje Mistrzostw Europy w Piłce Nożnej 2024/Grupa EŻabka (sieć sklepów)Adam MałyszMaria ProboszZbigniew ZiobroPołudniowa AfrykaPaulo SousaWojewództwoTinderBinjamin NetanjahuWikingowieAndrzej DudaMonika OlejnikDroga krzyżowaMistrzostwa Europy w piłce nożnejBMW serii 5Magdalena ŚrodaErling HaalandSagrada FamíliaKatedra Notre-Dame w ParyżuMaderaToto WolffPiotr I WielkiJoanna PacułaSanahJenotKarol IIIPedro PascalAugust II MocnyWalerian PańkoZwierzętaPodział administracyjny WarszawyJanina GossMałgorzata TeodorskaAkcja „Wisła”Elżbieta BawarskaLista odcinków serialu Świat według KiepskichPowstanie listopadoweKrzysztof PiątekGooglePartie polityczne w PolsceKrólestwo Polskie (kongresowe)MoskwaDaniel RadcliffeMyslovitzLockheed Martin F-35 Lightning IITraktat wersalskiSchutzstaffelEstoniaJanusz Kowalski (polityk)Kryzys finansowy (2007–2009)Gajusz Juliusz CezarRosjaMałgorzata Windsor (księżniczka)🡆 More