Programowanie funkcyjne - Helion
Tłumaczenie: Witold Sikorski, Małgorzata Dąbkowska-Kowalik
ISBN: 9788301210465
stron: 286, Format: ebook
Data wydania: 2020-03-05
Księgarnia: Helion
Cena książki: 67,20 zł (poprzednio: 82,96 zł)
Oszczędzasz: 19% (-15,76 zł)
Programowanie funkcyjne jest jednym z głównych paradygmatów programowania. W rozmowach o programowaniu funkcyjnym zawsze pojawiają się określone pojęcia i zagadnienia. Rekurencja. Leniwe obliczenia. Przezroczystość odwołań. Eliminowanie efektów ubocznych. Funkcje jako obiekty pierwszej klasy. Funkcje wyższego poziomu. Rozwijanie (currying). Dopasowywanie wzorców. W książce Programowanie funkcyjne. Poznaj Clojure Elixir Haskell Scala Swift autorzy poruszają wszystkie te zagadnienia, spoglądając na nie z perspektywy pięciu różnych języków programowania. Ale programowanie funkcyjne to nie jest podejście typu wszystko albo nic. Całkiem sensowne jest napisanie kodu imperatywnego, który wykorzystuje niektóre techniki funkcyjne, praktyki i struktury danych. Do przyjęcia jest mieszanie i dopasowywanie stylów, a niektóre języki programowania są wręcz zaprojektowane do budowy hybrydowej, pozwalając na korzystanie ze stylu, który najlepiej pasuje do bieżących potrzeb użytkownkia. W książce Programowanie funkcyjne. Poznaj Clojure Elixir Haskell Scala Swift autorzy analizują te różne podejścia, a czytelnicy sami mogą zdecydować, co im najbardziej pasuje.
Osoby które kupowały "Programowanie funkcyjne", wybierały także:
- F# 4.0 dla zaawansowanych. Wydanie IV 96,45 zł, (29,90 zł -69%)
- Systemy reaktywne. Wzorce projektowe i ich stosowanie 65,31 zł, (20,90 zł -68%)
- Scratch. Komiksowa przygoda z programowaniem 36,06 zł, (11,90 zł -67%)
- GameMaker. Kurs video. Kompleksowy przewodnik tworzenia gier platformowych 154,58 zł, (55,65 zł -64%)
- Dost 89,00 zł, (35,60 zł -60%)
Spis treści
Programowanie funkcyjne eBook -- spis treści
- Okładka
- Strona tytułowa
- Strona redakcyjna
- Wprowadzenie
- Podziękowania
- 1. Programowanie funkcyjne wraca do Å‚ask
- Widzieliśmy już ten film
- Nowe argumenty za programowaniem funkcyjnym
- 2. Myślenie funkcyjne dla imperatywnego umysłu
- Wszystko sprowadza siÄ™ do funkcji
- Chodzi o niemutowalność
- Chodzi o sposób myślenia
- 3. Scala i styl funkcyjny
- Czystość funkcyjna
- Funkcje wyższego rzędu
- Prosty przykład
- Przykład praktyczny
- Co ze znajdowaniem błędów i wydajnością?
- 4. Praca z kolekcjami języka Scala
- Kolekcje niemutowalne
- Kolekcje zmienne (mutowalne)
- Kolekcje leniwe
- 5.Tworzenie funkcji wyższego rzędu w języku Scala
- Tworzenie funkcji wyższego rzędu
- Wiele list parametrów
- Wartości funkcji i wzorzec pożyczki
- 6. Wywiad z Richem Hickeyem
- Dlaczego Clojure?
- Infrastruktura
- Z czym go porównać?
- 7.Zrozumienie języka Clojure dlaczego Lisp nadal się liczy
- REPL
- Wektory i słowa kluczowe
- Makra
- 8. Tożsamość, wartość i stan w Clojure
- Model obiektowy
- Model Clojure
- 9. Programowanie współbieżne w Clojure
- Prosty problem programowania współbieżnego
- RozwiÄ…zania w Clojure
- 10. Wzorce i przekształcenia w języku Elixir
- Dopasowywanie do wzorców
- Dopasowywanie do wzorców dla danych strukturalnych
- Dopasowywanie do wzorców i funkcje
- Przekształcenie to zadanie numer 1
- 11. Stawanie siÄ™ funkcyjnym za pomocÄ… Elixira
- Funkcje anonimowe
- Funkcje nazwane
- Przykład praktyczny
- Refaktoryzacja do stylu funkcyjnego
- Co wyróżnia ten kod
- 12. Równoległość w języku Elixir
- Model aktora
- Aktory a Elixir
- Komunikaty
- Monitorowanie naszego procesu
- Ostatni przykład
- Współbieżność to istota Elixira
- 13. Haskell i myślenie funkcyjne
- O co w tym wszystkim chodzi
- Szybkie ćwiczenie
- Typy danych sÄ… niedrogie
- Dopasowywanie do wzorców
- Rekurencja, sterowanie i funkcje wyższego rzędu
- Inne własności
- 14. Haskell w praktyce
- Po jednym kroku
- Generowanie kandydatów
- Filtrowanie słownikowe
- Wyszukiwanie wszerz
- Użycie wyszukiwania
- Wydajność i optymalizacja
- 15. Swift co powinniśmy wiedzieć
- Hello, Swift!
- Funkcyjny Swift
- 16. Myślenie funkcyjne w języku Swift
- Nie używamy nil, chyba że celowo
- Unikanie stanu mutowalnego
- Należy używać funkcji wyższego rzędu
- 17. Protokoły Swift kontra Ruby i Elixir
- Problem z rozszerzeniami
- Przypadek dla protokołów
- Protokoły i rozszerzenia
- 18. Dopasowywanie do wzorca w Scali
- Liczenie monet
- Dopasowywanie wszystkich rzeczy
- Korzystanie z wyodrębniania
- 19. Współbieżność w Scali
- Korzystanie z kolekcji równoległych
- Wiedza, kiedy użyć współbieżności
- Powrót do wcześniejszego przykładu
- 20. Wyjątkowa obsługa wyjątków w Clojure
- Prosty przykład
- Problem z wyjÄ…tkami
- RozwiÄ…zanie warunki
- Ułatwmy życie elementom wywołującym
- Lenistwo i błędy
- 21. Testowanie platformy dla Elixira
- Inwestowanie w testowanie
- Jeden eksperyment, kilka miar
- Optymalizowanie konfiguracji za pomocÄ… TrueStory
- Zagęszczanie i łączenie miar
- Kontrolowanie powtarzania konfiguracji z zagnieżdżonymi kontekstami
- Kontrolowanie powtarzania konfiguracji za pomocą potoków historyjek
- 22. Tworzenie danych testowych w języku Elixir
- Typowe podejścia
- Piękne dane dla pięknych testów
- Rejestrowanie szablonów i prototypów za pomocą Forge
- Tworzenie instancji wpisów szablonów
- Wzajemne atrybuty i having
- Tworzenie struktur
- Tworzenie niestandardowych jednostek
- Przystosowywanie zapisywania
- 23. System typów w języku Haskell
- TL;DR (Too long; didnt read zbyt długie, nie dało się odczytać)
- Do czego służą typy?
- Konkretny przykład sortowanie
- Język systemu typów Haskella
- Wnioskowanie i sprawdzanie typów
- Kilka przykładów
- Wygodna przerwa
- Interfejsy i klasy typów
- Rzeczywiste przykłady z interfejsami
- Zalety i wady reguła 80/20
- Po Haskellu typy zależne
- Twierdzenia sÄ… typami, a dowody programami
- Inne spojrzenie na sortowanie
- Wracamy na ziemiÄ™
- 24. Projekt w Haskellu testowanie kodu natywnego
- Nasz kod natywny
- Krótkie wprowadzenie do FFI Haskella
- Opakowywanie naszego natywnego kodu w Haskellu
- Eksperymentowanie z GHCi
- Krótkie wprowadzenie do QuickCheck
- Pisanie własności równoważności
- Likwidacja usterek
- 25. Wiele twarzy funkcji Swifta
- Anatomia funkcji Swifta
- Wywoływanie wszystkich funkcji
- Wywoływanie metod
- Metody instancji są funkcjami rozwiniętymi
- Init uwaga specjalna
- Wyszukane parametry
- Parametry o zmiennej liczbie argumentów
- Generyczne typy parametrów
- Parametry zmienne
- Funkcje jako parametry
- Kontrola dostępu
- Wyszukane typy zwrotne
- Funkcje zagnieżdżone
- 26. Funkcyjne podejście do Lua
- Funkcje pierwszoklasowe w Lua
- Rekurencja w Lua
- Budowanie za pomocą pierwotnych elementów funkcyjnych
- Prosta animacja w grze
- O autorach
- Bibliografia
- Przypisy