Scala (język programowania)

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

Scalaję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 ("scalable language").

Scala został stworzony w 2001 roku na École Polytechnique Fédérale de Lausanne przez Martina Odersky'ego. Język ten został upubliczniony w styczniu 2004 roku na platformie Javy, a w czerwcu tego samego roku na .NET. Wersja druga została udostępniona w marcu 2006 roku.

Wspierane paradygmaty [edytuj]

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.

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.

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)
  }
}

Linki zewnętrzne [edytuj]