blog.stepniak.net.pl

Brudnopis programisty

Functional Programming Principles in Scala, week #1, podsumowanie

by Szymon Stępniak on 22 września 2013, no comments

scala-logo

Od wysłania zadań z pierwszego tygodnia kursu minęło już kilka dni, czas na krótkie podsumowanie oraz o tym, czego możemy na kursie Functional Programming Principles in Scala się nauczyć. Zachęcam do dalszej lektury.

Functional Programming Principles in Scala to kurs poświęcony programowaniu funkcyjnemu, zaprezentowanemu za pomocą języka Scala. Co takiego niezwykłego jest w tym kursie? Jedną z głównych zalet jest fakt, że został on przygotowany przez Martina Odersky’ego, co dla osób pragnących poznawać nowe technologie u źródeł jest zaletą samą w sobie. Na korzyść kursu przemawia również (póki co) nieprzytłaczająca ilość materiału – z powodzeniem można zaplanować sobie te 5-7 godzin w tygodniu na przyswojenie materiału i rozwiązanie zadań. Sama formuła kursu jest ponadto zachęcająca do dalszej nauki, co w pewnym stopniu zawdzięczać możemy elementom gamification.

W pierwszym tygodniu poruszone zostały następujące kwestie:

  • narzędzia i wprowadzenie do korzystania z nich: sbt (REPL), Scala Eclipse IDE (projekt, worksheet),
  • różnice w paradygmatach imperatywnego i funkcyjnego programowania,
  • wsparcie języka Scala dla programowania współbieżnego,
  • podstawy języka Scala, operacje, definiowanie funkcji, instrukcje warunkowe,
  • Substitution model – sposób ewaluacji argumentów funkcji,
  • Strategie ewaluacji: call-by-name, call-by-value
  • Strategie definiowania wartości: by-name, by-value,
  • rekurencja,
  • funkcje zagnieżdżone, bloki, widoczność i zasięg funkcji,
  • tail recursion.

Na koniec do rozwiązania mamy 3 zadania programistyczne, mające na celu przećwiczenie omawianego materiału. Jeśli jesteście ciekawi co to za zadania, zachęcam do zapisania się na kurs. Jedyne czym mogę się podzielić, to wynik jaki sam uzyskałem:

zrzut_ekranu-16

Podsumowując, kurs Functional Programming Principles in Scala to ciekawy sposób na naukę zarówno programowania funkcyjnego jak i języka Scala. Dla mnie jest fajnym pretekstem, żeby Scali poświęcić trochę czasu, do czego przymierzałem się już od dawna. Pierwszy krok już zrobiłem. A Ty?