Zatem do dzieła!
Ten wpis jest kontynuacją pomysłu - w założeniu powinien pomóc w nauce języka programowania Scala, aby wizyta na kolejnym scalania nie wiązała się z koniecznością udziału w poprzednich. Pozostaje jedynie przeczytać materiał szkoleniowy i rozwiązać poprzednie zadania, aby z podniesioną głową móc podjąć się kolejnych.
Podsumowanie scalania 2 znajdziesz na moim blogu w Scalowanie na Scalaniach #2 = scalowych spotkaniach po godzinach. Strona z materiałem ze Scali, który omówiliśmy jest na wiki projektu scalania - Scalania 2.
Dzisiaj słówko kluczowe def, które służy do definiowania metod w Scali.
Specyfikacja The Scala Language Specification Version 2.8 omawia def w rozdziale 4.6 Function Declarations and Definitions. Poniżej wersja skrócona.
Aż do odwołania ten i kolejne wpisy zakładają, że funkcja i metoda są zamienne (co nie jest prawdą, ale wiedza wykracza poza materiał wprowadzający).
Definiowanie funkcji w Scali ma postać def nazwa-funkcji(parametry-funkcji): typ-wyniku = ciało-funkcji. Poniżej kilka definicji funkcji.
def sum(x: Int, y: Int) = x + y def f(xs: List[Int]) = xs.size def isPalindrome(ls: List[Int]): Boolean = ls == ls.reverseNazwa funkcji nazwa-funkcji jest ciągiem znaków, który (w jednej z trzech możliwych form) rozpoczyna się literą, po której występuje dowolny ciąg znaków - liter i cyfr. Na nasze potrzeby pozostaniemy przy tej definicji.
Parametry funkcji parametry-funkcji występują w nawiasach okrągłych i są listą elementów identyfikator: typ lub identyfikator: typ = wartość-domyślna oddzielonych przecinkiem.
Typ wyniku funkcji typ-wyniku nie jest koniecznym elementem sygnatury i najczęściej jest pomijany. Wyjątkiem jest funkcja rekurencyjna, czyli taka, która wywołuje samą siebie.
Ciałem funkcji ciało-funkcji jest wyrażenie, które opisuje wynik funkcji. Wyrażenie (ang. expression) zawsze zwraca wartość i jest jej opisem.
Tyle wystarczy na początkowe zadania. Gdybym się mylił, proszę o wskazanie braków i/lub zadawanie pytań uzupełniających.
Uczestników scalania 3 uprasza się o wykonanie zadań 1-6. Proszę odpalić Scala REPL i napisać ciała funkcji p1 do p6. Więcej w README projektu scalania.
Brak komentarzy:
Prześlij komentarz