Scala. Język hybrydowy - ebook
Scala. Język hybrydowy - ebook
Ebook Scala. Język hybrydowy autorstwa Venkata Subramaniama to łagodne wprowadzenie w programowanie funkcyjne za pomocą języka Scala. Z publikacji Czytelnik dowie się, jak tworzyć funkcje wyższego rzędu w języku Scala. Przeczyta również, jak pracować z kolekcjami języka Scala – niemutowalnymi, mutowalnymi i leniwymi. Autor poświęcił też sporo miejsca na wyjaśnienie, czym jest czystość funkcyjna. W publikacji znajduje się również odpowiedź na pytanie, jak znajdować błędy i zwiększać wydajność.
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-01-21891-1 |
Rozmiar pliku: | 1,1 MB |
FRAGMENT KSIĄŻKI
AUTOR – Venkat Subramaniam
Podczas projektowania języka Scala Martin Odersky zrobił odważny, niekonwencjonalny krok, łącząc ze sobą dwa różne paradygmaty: obiektowy i funkcyjny. Nie jest to proste zadanie – oba style są bardzo różne, a połączenie dwóch różnych paradygmatów stanowi prawdziwe wyzwanie.
Aby zrozumieć, jakie przeszkody stały przed Oderskym, popatrzmy najpierw, co oznacza być funkcyjnym. Są tu dwa aspekty definiujące funkcjonalny styl programowania: czystość funkcji oraz programowanie za pomocą funkcji wyższego rzędu.
Czystość funkcyjna
Czystość oznacza, że funkcje nie mają efektów ubocznych. Wyjście z funkcji jest przewidywalnie takie samo, jeśli tylko takie same pozostaje wejście. Na czystą funkcję nic nie wpływa, a ona nie wpływa na żaden element zewnętrzny. Oznacza to także, że nie zmienia ona żadnej wartości.
Wśród zalet czystości funkcji warto wymienić dwie. Po pierwsze łatwiej jest zrozumieć i udowodnić poprawność czystej funkcji. Po drugie czyste funkcje promują transparentność odwołań. Czyste funkcje można łatwo przeorganizować i zmienić kolejność ich wykonywania w wielu wątkach, co ułatwia programowanie współbieżności na procesorach wielordzeniowych.
Scala nie wymusza czystości, ale ułatwia wykrycie, gdzie są używane zmienne mutowalne – po prostu szukamy var. Dobrą praktyką w Scali jest korzystanie możliwie często z niemutowalności, a konkretnie z niemutowalnych val.
Funkcje wyższego rzędu
Innym aspektem stylu funkcyjnego jest praca z _funkcjami wyższego rzędu_ – chodzi o traktowanie funkcji jak obywateli pierwszej klasy. Pozwala nam to na przekazywanie funkcji do funkcji, tworzenie funkcji wewnątrz funkcji oraz zwracanie funkcji z funkcji. To z kolei pozwala na składanie funkcji, a zaletą Scali jest możliwość projektowania złożenia funkcji i złożenia obiektów, tak jak chcemy lub jak jest to właściwe.
Przeanalizujmy podejście w Scali do programowania funkcyjnego na przykładach. Zaczniemy od małych przykładów, które tylko posługują się liczbami, tak aby łatwo zrozumieć sposób używania w Scali funkcji wyższego rzędu. Następnie spojrzymy na przykład praktyczny, gdzie zastosujemy poznane pojęcia.