Programowanie funkcjonalne (informat.)
Sortowanie
Źródło opisu
Książki, czasopisma i zbiory specjalne
(9)
Forma i typ
Książki
(9)
Publikacje fachowe
(4)
Publikacje dydaktyczne
(1)
Dostępność
tylko na miejscu
(9)
dostępne
(1)
Placówka
Wypożyczalnia
(1)
Magazyn
(4)
Biblioteka WEAiI
(5)
Autor
Trybus Leszek
(2)
Backfield Joshua
(1)
Bartoszek Jerzy
(1)
Brzykcy Grażyna
(1)
Cybulka Jolanta
(1)
Dąbkowska-Kowalik Małgorzata
(1)
Janusz Jacek
(1)
Jońca Rafał
(1)
Kousen Ken
(1)
Lachowski Lech
(1)
Meissner Adam
(1)
Piwko Łukasz
(1)
Saumont Pierre-Yves (1925- )
(1)
Sikorski Witold (1950- )
(1)
Swaine Michael (1945- )
(1)
Čukić Ivan
(1)
Rok wydania
2020 - 2024
(1)
2010 - 2019
(4)
2000 - 2009
(2)
1990 - 1999
(2)
Okres powstania dzieła
2001-
(4)
Kraj wydania
Polska
(9)
Język
polski
(9)
Temat
Budownictwo
(2412)
Zarządzanie
(2038)
Matematyka
(1930)
Elektrotechnika
(1896)
Przedsiębiorstwa
(1790)
Programowanie funkcjonalne (informat.)
(-)
Fizyka
(1535)
Informatyka
(1502)
Maszyny
(1228)
Fizjoterapia
(1175)
Wytrzymałość materiałów
(1157)
Ochrona środowiska
(1023)
Sport
(1012)
Turystyka
(953)
Elektronika
(946)
Ekonomia
(932)
Mechanika
(932)
Automatyka
(916)
Język angielski
(873)
Samochody
(867)
Rachunkowość
(821)
Chemia
(808)
Rehabilitacja
(800)
Polska
(791)
Gospodarka
(778)
Komunikacja marketingowa
(760)
Technika
(743)
Konstrukcje budowlane
(727)
Wychowanie fizyczne
(725)
Przemysł
(723)
Prawo pracy
(712)
Unia Europejska
(699)
Piłka nożna
(690)
Transport
(673)
Elektroenergetyka
(667)
Architektura
(637)
Marketing
(637)
Innowacje
(619)
Naprężenia i odkształcenia
(613)
OZE
(606)
Programowanie (informatyka)
(590)
Trening
(586)
Energetyka
(585)
Programy komputerowe
(584)
Technologia chemiczna
(567)
Rolnictwo
(556)
Biomasa
(543)
Analiza numeryczna
(532)
Prawo
(524)
Odnawialne źródła energii
(520)
Sterowanie
(520)
Komputery
(517)
Materiałoznawstwo
(517)
Produkcja
(517)
Symulacja
(515)
Inwestycje
(508)
Praca
(503)
Analiza matematyczna
(495)
Zarządzanie jakością
(495)
Zarządzanie zasobami ludzkimi (HRM)
(495)
Dzieci
(489)
Energia elektryczna
(489)
Urbanistyka
(488)
Materiały budowlane
(482)
Logistyka gospodarcza
(480)
Rynek pracy
(474)
Finanse
(468)
Maszyny elektryczne
(468)
Szkolnictwo wyższe
(468)
Przedsiębiorstwo
(467)
Psychologia
(467)
Modele matematyczne
(465)
Internet
(464)
Metale
(462)
Nauka
(456)
Marketing internetowy
(453)
Systemy informatyczne
(448)
Statystyka matematyczna
(447)
Języki programowania
(433)
Skrawanie
(432)
Reklama
(431)
Rehabilitacja medyczna
(429)
Mechanika budowli
(425)
Działalność gospodarcza
(422)
Organizacja
(417)
Telekomunikacja
(413)
Metrologia
(412)
Pedagogika
(410)
Drgania
(409)
Trener
(406)
Ubezpieczenia społeczne
(394)
Controlling
(392)
Optymalizacja
(392)
Historia
(388)
Filozofia
(385)
Podatki
(385)
Statystyka
(384)
Socjologia
(382)
Banki
(378)
BHP
(375)
Rachunkowość zarządcza
(374)
Gatunek
Podręcznik
(5)
Dziedzina i ujęcie
Informatyka i technologie informacyjne
(4)
9 wyników Filtruj
Książka
W koszyku
(O'Reilly)
Na okł.: Zmień swoje podejście do programowania!
Na s. tyt. miejsce wydania oryg.: Beijing [etc.].
Pliki z przykładami omawianymi w książce można znaleźć pod adresem internet. podanym na s. red.
Indeks.
Sygnatura czytelni BWEAiI: XII E 87
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 140417 N (1 egz.)
Brak okładki
Książka
W koszyku
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Magazyn
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 98049 LE (1 egz.)
Brak okładki
Książka
W koszyku
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Magazyn
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 98050 LE (1 egz.)
Książka
W koszyku
Tytuł oryginału: Functional programming in C++ : how to improve your C++ programs using functional techniques.
Na okładce logo wydawnictwa oryginału Manning Publications Co.
Indeks.
Rozdział 1. Wprowadzenie do programowania funkcyjnego 17 1.1. Co to jest programowanie funkcyjne? 18 1.1.1. Związek z programowaniem obiektowym 19 1.1.2. Praktyczny przykład porównania programowania imperatywnego i deklaratywnego 20 1.2. Funkcje czyste 24 1.2.1. Unikanie stanu mutowalnego 27 1.3. Myślenie w sposób funkcjonalny 29 1.4. Korzyści wynikające z programowania funkcyjnego 31 1.4.1. Zwięzłość i czytelność kodu 32 1.4.2. Współbieżność i synchronizacja 33 1.4.3. Ciągła optymalizacja 33 1.5. Przekształcanie C++ w funkcyjny język programowania 34 1.6. Czego nauczysz się w trakcie czytania tej książki? 36 Rozdział 2. Pierwsze kroki z programowaniem funkcyjnym 39 2.1. Funkcje używające innych funkcji? 40 2.2. Przykłady z biblioteki STL 42 2.2.1. Obliczanie średnich 42 2.2.2. Zwijanie 45 2.2.3. Przycinanie łańcucha 48 2.2.4. Partycjonowanie kolekcji na podstawie predykatu 50 2.2.5. Filtrowanie i transformacja 52 2.3. Problemy ze składaniem algorytmów STL 53 2.4. Tworzenie własnych funkcji wyższego rzędu 55 2.4.1. Otrzymywanie funkcji w postaci argumentów 55 2.4.2. Implementacja z pętlami 56 2.4.3. Rekurencja oraz optymalizacja przez rekurencję ogonową 57 2.4.4. Implementacja przy użyciu zwijania 61 Rozdział 3. Obiekty funkcyjne 63 3.1. Funkcje i obiekty funkcyjne 64 3.1.1. Automatyczna dedukcja typu zwracanego 64 3.1.2. Wskaźniki do funkcji 67 3.1.3. Przeciążanie operatora wywołania 68 3.1.4. Tworzenie generycznych obiektów funkcyjnych 70 3.2. Wyrażenia lambda i domknięcia 73 3.2.1. Składnia wyrażenia lambda 74 3.2.2. Co się kryje wewnątrz wyrażenia lambda? 75 3.2.3. Tworzenie dowolnych zmiennych składowych w wyrażeniach lambda 77 3.2.4. Uogólnione wyrażenia lambda 79 3.3. Tworzenie obiektów funkcyjnych, które są jeszcze bardziej zwięzłe niż wyrażenia lambda 80 3.3.1. Obiekty funkcyjne operatorów w bibliotece STL 83 3.3.2. Obiekty funkcyjne operatorów w innych bibliotekach 84 3.4. Opakowywanie obiektów funkcyjnych przy użyciu std::function 86 Rozdział 4. Tworzenie nowych funkcji na podstawie istniejących 89 4.1. Częściowe stosowanie funkcji 90 4.1.1. Ogólny sposób zamiany funkcji dwuargumentowych na jednoargumentowe 92 4.1.2. Użycie std::bind do wiązania wartości z określonymi argumentami funkcji 95 4.1.3. Zamienianie ze sobą argumentów funkcji dwuargumentowej 97 4.1.4. Użycie std::bind z funkcjami mającymi więcej argumentów 98 4.1.5. Użycie wyrażeń lambda jako alternatywy dla std::bind 101 4.2. Rozwijanie: inny sposób podejścia do funkcji 103 4.2.1. Rozwijanie funkcji w prostszy sposób 104 4.2.2. Użycie rozwijania podczas dostępu do bazy danych 106 4.2.3. Rozwijanie a częściowe stosowanie funkcji 109 4.3. Złożenie funkcji 110 4.4. Podnoszenie funkcji - kolejne podejście 113 4.4.1. Odwracanie elementów par w kolekcji 116 Rozdział 5. Czystość: unikanie stanu mutowalnego 119 5.1. Problemy ze stanem mutowalnym 120 5.2. Funkcje czyste i przejrzystość referencyjna 122 5.3. Programowanie bez efektów ubocznych 125 5.4. Stan mutowalny i niemutowalny w środowisku współbieżnym 129 5.5. Duże znaczenie kwalifikatora const 132 5.5.1. Logiczna i wewnętrzna zgodność z deklaracją const 134 5.5.2. Optymalizacja funkcji składowych dla zmiennych tymczasowych 136 5.5.3. Pułapki związane z użyciem słowa kluczowego const 138 Rozdział 6. Wartościowanie leniwe 141 6.1. Wartościowanie leniwe w C++ 142 6.2. Wartościowanie leniwe jako technika optymalizacyjna 145 6.2.1. Sortowanie kolekcji przy wykorzystaniu wartościowania leniwego 145 6.2.2. Wyświetlanie elementów w interfejsach użytkownika 147 6.2.3. Przycinanie drzew rekurencyjnych przez buforowanie wyników funkcji 148 6.2.4. Programowanie dynamiczne jako forma wartościowania leniwego 150 6.3. Uogólnione zapamiętywanie 152 6.4. Szablony wyrażeń i leniwe łączenie łańcuchów 155 6.4.1. Czystość i szablony wyrażeń 159 Rozdział 7. Zakresy 163 7.1. Wprowadzenie do zakresów 165 7.2. Tworzenie widoków danych tylko do odczytu 166 7.2.1. Użycie funkcji filter z zakresami 166 7.2.2. Użycie funkcji transform z zakresami 167 7.2.3. Wartościowanie leniwe wartości zakresów 168 7.3. Mutowalność zmiennych w zakresach 170 7.4. Używanie zakresów ograniczonych i nieskończonych 172 7.4.1. Użycie zakresów ograniczonych do optymalizacji obsługi zakresów wejściowych 172 7.4.2. Tworzenie zakresów nieskończonych przy użyciu wartowników 173 7.5. Używanie zakresów do obliczania częstości pojawiania się słów 175 Rozdział 8. Funkcyjne struktury danych 179 8.1. Niemutowalne listy łączone 180 8.1.1. Dodawanie i usuwanie elementów z początku listy 180 8.1.2. Dodawanie i usuwanie elementów z końca listy 181 8.1.3. Dodawanie i usuwanie elementów z wnętrza listy 182 8.1.4. Zarządzanie pamięcią 183 8.2. Niemutowalne struktury danych podobne do wektorów 185 8.2.1. Wyszukiwanie elementu w drzewie trie 187 8.2.2. Dołączanie elementów w drzewie trie 189 8.2.3. Aktualizacja elementów w drzewie trie 191 8.2.4. Usuwanie elementów z końca drzewa trie 192 8.2.5. Inne operacje i całkowita wydajność drzewa trie 192 Rozdział 9. Algebraiczne typy danych i dopasowywanie do wzorców 195 9.1. Algebraiczne typy danych 196 9.1.1. Typy sumy uzyskiwane poprzez dziedziczenie 197 9.1.2. Typy sumy uzyskiwane dzięki uniom i typowi std::variant 200 9.1.3. Implementacja określonych stanów 204 9.1.4. Szczególny typ sumy: wartości opcjonalne 205 9.1.5. Użycie typów sumy w celu obsługi błędów 207 9.2. Modelowanie dziedziny za pomocą algebraicznych typów danych 212 9.2.1. Rozwiązanie najprostsze, które czasami jest niewystarczające 213 9.2.2. Rozwiązanie bardziej zaawansowane: podejście zstępujące 214 9.3. Lepsza obsługa algebraicznych typów danych za pomocą dopasowywania do wzorców 215 9.4. Zaawansowane dopasowywanie do wzorców za pomocą biblioteki Mach7 218 Rozdział 10. Monady 221 10.1. Funktory pochodzące od nie Twojego rodzica 222 10.1.1. Obsługa wartości opcjonalnych 223 10.2. Monady: więcej możliwości dla funktorów 226 10.3. Proste przykłady 229 10.4. Składane zakresy i monady 231 10.5. Obsługa błędów 234 10.5.1. Typ std::optionaljako monada 234 10.5.2. Typ expectedjako monada 236 10.5.3. Monada Try 237 10.6. Obsługa stanu przy użyciu monad 238 10.7. Monada współbieżnościowa i kontynuacyjna 240 10.7.1. Typ future jako monada 242 10.7.2. Implementacja wartości przyszłych 244 10.8. Składanie monad 245 Rozdział 11. Metaprogramowanie szablonów 249 11.1. Zarządzanie typami w czasie kompilacji 250 11.1.1. Debugowanie typów dedukowanych 252 11.1.2. Dopasowywanie do wzorców podczas kompilacji 254 11.1.3. Udostępnianie metainformacji o typach 257 11.2. Sprawdzanie właściwości typu w czasie kompilacji 258 11.3. Tworzenie funkcji rozwiniętych 261 11.3.1. Wywoływanie wszystkich obiektów wywoływalnych 263 11.4. Tworzenie języka dziedzinowego 265 Rozdział 12. Projektowanie funkcyjne systemów współbieżnych 273 12.1. Model aktora: myślenie komponentowe 274 12.2. Tworzenie prostego źródła wiadomości 278 12.3. Modelowanie strumieni reaktywnych w postaci monad 281 12.3.1. Tworzenie ujścia w celu odbierania wiadomości 283 12.3.2. Transformowanie strumieni reaktywnych 286 12.3.3. Tworzenie strumienia z określonymi wartościami 288 12.3.4. Łączenie strumienia strumieni 289 12.4. Filtrowanie strumieni reaktywnych 290 12.5. Obsługa błędów w strumieniach reaktywnych 291 12.6. Odpowiadanie klientowi 293 12.7. Tworzenie aktorów ze stanem mutowalnym 297 12.8. Tworzenie systemów rozproszonych z użyciem aktorów 298 Rozdział 13. Testowanie i debugowanie 301 13.1. Czy program, który się kompiluje, jest poprawny? 302 13.2. Testy jednostkowe i funkcje czyste 304 13.3. Testy generowane automatycznie 305 13.3.1. Generowanie przypadków testowych 306 13.3.2. Testowanie oparte na właściwościach 307 13.3.3. Testy porównawcze 309 13.4. Testowanie systemów współbieżnych opartych na monadach 311
Sygnatura czytelni BWEAiI: XII Ł 161
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 148509 N (1 egz.)
Książka
W koszyku
Tytuł oryginału: Modern Java recipes : simple solutions to difficult problems in Java 8 and 9.
Na stronie tytułowej również informacje o miejscach wydania i wydawcy oryginału - O'Reilly.
Indeks.
Nowoczesna Java (11) Adresaci książki (12) Struktura książki (12) Konwencje typograficzne (14) Przykłady kodu (15) Podziękowania (15) 1. Podstawy (17) 1.1 Wyrażenia lambda (18) 1.2 Referencje do metod (21) 1.3 Referencje do konstruktorów (25) 1.4 Interfejsy funkcyjne (29) 1.5 Domyślne metody w interfejsach (31) 1.6 Statyczne metody w interfejsach (34) 2. Pakiet java.util.function (37) 2.1 Konsumenty (37) 2.2 Dostawcy (40) 2.3 Predykaty (42) 2.4 Funkcje (46) 3. Strumienie (49) 3.1 Tworzenie strumieni (49) 3.2 Strumienie w opakowaniach (53) 3.3 Redukowanie wartości przy użyciu metody reduce (55) 3.4 Sprawdzanie poprawności sortowania przy użyciu metody reduce (63) 3.5 Debugowanie strumieni przy użyciu metody peek (64) 3.6 Konwertowanie łańcuchów na strumienie i z powrotem (66) 3.7 Liczenie elementów (69) 3.8 Zestawienia statystyczne (71) 3.9 Znajdowanie pierwszego elementu w strumieniu (74) 3.10 Sposoby użycia metod anyMatch, allMatch i noneMatch (78) 3.11 Strumienie i słowniki (80) 3.12 Łączenie strumieni (83) 3.13 Leniwe strumienie (86) 4. Komparatory i kolektory (89) 4.1 Sortowanie przy użyciu komparatora (89) 4.2 Konwertowanie strumienia na kolekcję (92) 4.3 Dodawanie liniowej kolekcji do słownika (95) 4.4 Sortowanie słowników (97) 4.5 Dzielenie i grupowanie (100) 4.6 Kolektory strumieniowe (102) 4.7 Znajdowanie najmniejszej i największej wartości (104) 4.8 Tworzenie niezmiennych kolekcji (106) 4.9 Implementowanie interfejsu Collector (108) 5. Różne zastosowania strumieni, lambd i referencji do metod (113) 5.1 Klasa java.util.Objects (113) 5.2 Wyrażenia lambda i finalność (115) 5.3 Strumienie liczb losowych (118) 5.4 Domyślne metody w interfejsie Map (119) 5.5 Konflikty metod domyślnych (123) 5.6 Iteracyjne przeglądanie kolekcji i słowników (125) 5.7 Zapisywanie dziennika przy użyciu dostawcy (128) 5.8 Łączenie domknięć (130) 5.9 Obsługa wyjątków za pomocą wydzielonej metody (133) 5.10 Wyjątki kontrolowane i wyrażenia lambda (135) 5.11 Generyczne opakowanie wyjątków (137) 6. Typ Optional (141) 6.1 Tworzenie obiektu klasy Optional (142) 6.2 Pobieranie wartości z obiektów typu Optional (144) 6.3 Typ Optional w metodach dostępowych (147) 6.4 Klasa Optional oraz metody map i ?atMap (148) 6.5 Mapowanie obiektów Optional (152) 7. Plikowe wejście i wyjście (155) 7.1 Przetwarzanie plików (156) 7.2 Pobieranie plików jako strumienia (158) 7.3 Przeglądanie systemu plików (159) 7.4 Przeszukiwanie systemu plików (161) 8. Pakiet java.time (163) 8.1 Sposób użycia podstawowych klas biblioteki dat i godzin (164) 8.2 Tworzenie dat i godzin z istniejących obiektów (167) 8.3 Regulatory i zapytania (171) 8.4 Konwersja z java.util.Date na java.time.LocalDate (176) 8.5 Parsowanie i formatowanie (179) 8.6 Znajdowanie stref czasowych z nietypowymi przesunięciami (181) 8.7 Znajdowanie nazw regionów po przesunięciach (183) 8.8 Czas dzielący wydarzenia (186) 9. Równoległość i współbieżność (189) 9.1 Konwertowanie strumieni sekwencyjnych na równoległe (190) 9.2 Kiedy zrównoleglenie jest warte zachodu? (193) 9.3 Zmienianie rozmiaru puli (197) 9.4 Interfejs Future (199) 9.5 Kończenie CompletableFuture (202) 9.6 Koordynacja obiektów CompletableFuture ? część I (206) 9.7 Koordynacja obiektów CompletableFuture ? część II (211) 10. Nowości w Javie 9 (217) 10.1 Moduły w Jigsaw (218) 10.2 Metody prywatne w interfejsach (222) 10.3 Tworzenie niezmiennych kolekcji (223) 10.4 Stream: metody ofNullable, iterate, takeWhile i dropWhile (227) 10.5 Kolektory strumieniowe: metody filtering i ?atMapping (230) 10.6 Optional: metody stream, or i ifPresentOrElse (233) 10.7 Przedziały dat (236) A. Typy generyczne i Java 8 (239) Podstawowe wiadomości (239) Co wszyscy wiedzą? (239) Z czego niektórzy programiści nie zdają sobie sprawy? (242) Symbole wieloznaczne i PECS (243) Przykłady z API Javy 8 (247)
Sygnatura czytelni BWEAiI: XII N 115
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 145865 N (1 egz.)
Książka
W koszyku
Indeks.
Czym jest programowanie funkcyjne? Czym jest programowanie funkcyjne? Pisanie użytecznych programów bez efektów ubocznych W jaki sposób transparentność referencyjna czyni program bezpieczniejszym? Zalety programowania funkcyjnego Wykorzystanie modelu z zastępowaniem do rozumowania na temat programu Zastosowanie zasad funkcyjnych na prostym przykładzie Osiąganie limitów abstrakcji Użycie funkcji w języku Java Czym jest funkcja? Funkcje w świecie rzeczywistym Funkcje w Javie Metody funkcyjne Interfejsy funkcyjne Javy i klasy anonimowe Złożenie funkcji Funkcje polimorficzne Upraszczanie kodu za pomocą funkcji anonimowych Zaawansowane funkcjonalności funkcji Co z funkcjami dotyczącymi kilku argumentów? Zastosowanie funkcji z częściowym rozwinięciem Funkcje wyższego rzędu Polimorficzne funkcje wyższego rzędu Użycie funkcji anonimowych Funkcje lokalne Domknięcia Częściowe zastosowanie funkcji i automatyczne rozwijanie Zamiana argumentów częściowo zastosowanych funkcji Funkcje rekurencyjne Funkcja tożsamościowa Interfejsy funkcyjne Javy 8 Debugging funkcji anonimowych Uczynić Javę bardziej funkcyjną Zamiana standardowych struktur sterujących na ich funkcyjne odpowiedniki Abstrakcja struktur sterujących Czyszczenie kodu Alternatywa dla if ... else Abstrakcja iteracji Abstrakcja operacji na liście dzięki odwzorowaniu Tworzenie list Wykorzystanie operacji dotyczących głowy i ogona Funkcyjne dodawanie do listy Redukcja i zwijanie list Kompozycja odwzorowań i mapowanie kompozycji Stosowanie efektów dla list Funkcyjne podejście do danych wyjściowych Budowanie list referencji odwrotnych Zastosowanie właściwych typów Problemy ze standardowymi typami (109) Definiowanie typów wartości Przyszłość typów wartości w Javie Rekurencja, rekurencja odwrotna i memoizacja Różnice między rekurencją i rekurencją odwrotną Przykład z dodawaniem dla obu rodzajów rekurencji Implementacja rekurencji w Javie Wykorzystanie eliminacji wywołania ogonowego Użycie funkcji i metod z rekurencją ogonową Abstrakcja rekurencji Utworzenie wersji zapewniającej prostą podmianę metody rekurencyjnej bazującej na stosie Stosowanie funkcji rekurencyjnych Korzystanie z lokalnie zdefiniowanych funkcji Zapewnienie funkcji działających jako rekurencje ogonowe Funkcje podwójnie rekurencyjne - ciąg Fibonacciego Zamiana metod dla list na wersje rekurencyjne i bezpieczne dla stosu Kompozycja ogromnej liczby funkcji Korzystanie z memoizacji Memoizacja w programowaniu imperatywnym Memoizacja w funkcjach rekurencyjnych Memoizacja automatyczna Obsługa danych przy użyciu list Jak klasyfikować kolekcje danych? Różne rodzaje list Względna oczekiwana wydajność listy Wymiana czasu na zajętość pamięci lub czasu kontra złożoność Modyfikacja na miejscu Trwałe struktury danych Implementacja niezmiennej, trwałej listy jednokierunkowej Współdzielenie danych w operacjach na liście Dodatkowe operacje na liście Wykorzystanie rekurencji do zwijania list za pomocą funkcji wyższego rzędu Bazująca na stercie, rekurencyjna wersja foldRight Odwzorowanie i filtrowanie list Obsługa danych opcjonalnych Problemy ze wskaźnikiem null Alternatywy dla referencji null Typ danych Option Pobranie wartości z Option Stosowanie funkcji dla wartości opcjonalnych Kompozycja obiektów Option Sposoby użycia Option Inne sposoby łączenia opcji Kompozycja List z Option Różne narzędzia dodatkowe dla Option Testowanie, czy to Some, czy None Implementacja metod equals i hashcode Jak i gdzie używać Option? Obsługa błędów i wyjątków Problemy do rozwiązania Typ Either Kompozycja klasy Either Typ Result Dodawanie metod do klasy Result Wzorce Result Zaawansowana obsługa Result Stosowanie predykatów Mapowanie porażek Dodanie metod fabrycznych Stosowanie efektów Zaawansowana kompozycja wyników Zaawansowana obsługa list Problem z length Problem wydajności Zalety memoizacji Wady memoizacji Faktyczna wydajność Kompozycja List i Result Metody List zwracające Result Konwersja z List na Result Abstrakcja typowych operacji na listach Zszywanie i rozszywanie list Dostęp do elementów na podstawie ich indeksów Dzielenie list Poszukiwanie podlist Różnorakie funkcje dotyczące obsługi list Automatyczne przetwarzanie równoległe list Nie wszystkie obliczenia można zrównoleglić Podział listy na podlisty Zrównoleglone przetwarzanie podlist Wykorzystywanie leniwości obliczeń Zrozumieć rygor i lenistwo Java jest językiem rygorystycznym Problem z rygorem Implementacja wersji leniwej Rzeczy, których nie wykonamy bez lenistwa Dlaczego nie użyjemy klasy Stream z Javy 8? Tworzenie struktury danych dla leniwej listy Memoizacja wyliczonych wartości Modyfikacja strumienia Prawdziwa esencja lenistwa Zwijanie strumieni Obsługa strumieni nieskończonych Unikanie referencji null i modyfikowalnych pól Obsługa danych za pomocą drzew Drzewo binarne Drzewa zrównoważone i niezbalansowane Rozmiar, wysokość i głębia Drzewa liściaste Uporządkowane drzewa binarne lub też drzewa binarne wyszukiwania Kolejność wstawiania Kolejność przejścia przez drzewo Implementacja drzewa binarnego Usuwanie elementów z drzew Łączenie dowolnych drzew Zwijanie drzewa Zwijanie za pomocą dwóch funkcji Zwijanie za pomocą jednej funkcji Którą implementację zwinięcia wybrać? Odwzorowanie drzew Równoważenie drzew Obracanie drzew Równoważenie drzew za pomocą algorytmu Day-Stout-Warren Automatycznie równoważące się drzewa Rozwiązywanie właściwego problemu Rozwiązywanie rzeczywistych problemów przy użyciu zaawansowanych drzew Lepsza wydajność i bezpieczeństwo stosu dzięki samobalansującym się drzewom Prosta struktura drzewa Wstawianie elementu do drzewa czerwono-czarnego Przykład użycia drzew czerwono-czarnych - mapowanie Implementacja klasy Map Rozbudowania klasy Map Użycie klasy Map dla kluczy bez możliwości porównywania Implementacja funkcyjnej kolejki priorytetowej Protokół dostępowy dla kolejki priorytetowej Sposoby użycia kolejek priorytetowych Wymagania implementacyjne Struktura danych nazywana kopcem lewostronnym Implementacja kopca lewostronnego Implementacja interfejsu przypominającego kolejkę Kolejka priorytetowa dla elementów bez możliwości porównywania Obsługa zmian stanu w sposób funkcyjny Funkcjonalny generator liczb losowych Interfejs generatora liczb losowych Implementacja generatora liczb losowych Ogólne API do obsługi stanu Korzystanie z operacji na stanie Kompozycja operacji na stanie Ogólna obsługa stanu Wzorce stanu Tworzenie maszyny stanowej Kiedy korzystać ze stanu i maszyny stanowej Funkcyjne wejście-wyjście Stosowanie efektów w kontekście Czym są efekty? Implementacja efektów Bardziej użyteczne efekty dla porażek Odczyt danych Odczyt danych z konsoli Odczyt danych z pliku Testowanie z zadanymi danymi wejściowymi Naprawdę funkcyjne wejście-wyjście W jaki sposób zapewnić pełną funkcyjność wejścia-wyjścia? Implementacja w pełni funkcyjnego wejścia-wyjścia Łączenie operacji wejścia-wyjścia Obsługa wejścia za pomocą IO Rozszerzanie typu IO Uczynienie typu IO bezpiecznym dla stosu Współdzielenie zmiennego stanu przy użyciu aktorów Model aktora Asynchroniczne komunikaty Obsługa zrównoleglenia Obsługa zmiany stanu aktora Budowanie frameworka aktora Ograniczenia prezentowanego frameworka aktora Projektowanie interfejsów frameworka aktorów Implementacja AbstractActor Zmuszenie aktorów do działania Implementacja przykładu z ping-pongiem Bardziej poważny przykład - równoległe wykonywanie obliczeń Zmiana kolejności wyników Rozwiązanie problemu wydajności Rozwiązywanie typowych problemów w sposób funkcyjny Wykorzystanie asercji do walidacji danych Odczyt właściwości z pliku Wczytywanie pliku właściwości Odczyt właściwości jako tekstu Tworzenie lepszych komunikatów o błędzie Odczyt właściwości jako listy Odczytywanie wyliczeń Odczyt właściwości dowolnych typów Konwersja programu imperatywnego - czytnik plików XML Zebranie potrzebnych funkcji Kompozycja funkcji i stosowanie efektu Implementacja funkcji Uczynienie programu nawet bardziej funkcyjnym Rozwiązanie problemu z typem argumentu Zmiana funkcji przetwarzającej element na parametr Obsługa błędów dla nazw elementów Wykorzystanie elementów funkcyjnych Javy 8 Klasa Optional Strumienie Monady Co dalej? Wybór nowego języka Haskell Scala Kotlin Frege A co z dynamicznie typowanymi językami funkcyjnymi? Pozostanie z Javą Functional Java Javaslang Cyclops Inne biblioteki funkcyjne
Sygnatura czytelni BWEAiI: XII N 103
Ta pozycja znajduje się w zbiorach 2 placówek. Rozwiń listę, by zobaczyć szczegóły.
Wypożyczalnia
Są egzemplarze dostępne do wypożyczenia: sygn. 145209 (1 egz.)
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 145165 N (1 egz.)
Książka
W koszyku
Tytuł oryginału: The Pragmatic Programmers.
Bibliografia na stronie 257. Indeks.
Paradygmat funkcyjny Programowanie funkcyjne wraca do łask Widzieliśmy już ten film Nowe argumenty za programowaniem funkcyjnym Myślenie funkcyjne dla imperatywnego umysłu Wszystko sprowadza się do funkcji Chodzi o niemutowalność Chodzi o sposób myślenia Scala - język hybrydowy 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ą? Praca z kolekcjami języka Scala Kolekcje niemutowalne Kolekcje zmienne (mutowalne) Kolekcje leniwe 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 Część III Ciojure - nowy Lisp Wywiad z Richem Hickeyem Dlaczego Ciojure? Infrastruktura Z czym go porównać? Zrozumienie języka Ciojure - dlaczego Lisp nadal się liczy REPL Wektory i słowa kluczowe Makra Tożsamość, wartość i stan w Ciojure Model obiektowy Model Ciojure Programowanie współbieżne w Ciojure Prosty problem programowania współbieżnego Rozwiązania w Ciojure Elixir - aby programowanie znów było przyjemnością 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 Stawanie się funkcyjnym za pomocą Elixira77 Funkcje anonimowe Funkcje nazwane Przykład praktyczny Refaktoryzacja do stylu funkcyjnego Co wyróżnia ten kod Równoległość w języku Elixir Model aktora Alctory a Elixir Komunikaty Monitorowanie naszego procesu Ostatni przykład Współbieżność to istota Elixira ) nadal się liczy . Haskell - plac ćwiczeń dla uczonych Haskell i myślenie funkcyjne 0 co w tym wszystkim chodzi Szybkie ćwiczenie Typy danych są niedrogie Dopasowywanie do wzorców Relcurencja, 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 Swift - programowanie funkcyjne dla aplikacji mobilnych Swift - co powinniśmy wiedzieć. Hello, Swift! Funkcyjny Swift 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ę Protokoły - Swift kontra Ruby i Elixir Problem z rozszerzeniami Przypadek dla protokołów Protokoły i rozszerzenia Dopasowywanie do wzorca w Scali Liczenie monet Dopasowywanie wszystkich rzeczy Korzystanie z wyodrębniania 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 Wyjątkowa obsługa wyjątków w Clojure Prosty przykład Problem z wyjątkami Rozwiązanie - warunki Ułatwmy życie dementom wywołującym Lenistwo i błędy 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 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 zapisywaniaSystem typów w języku Haskell 151TL;DR (Too long; didn't read - zbytdługie, nie dało się odczytać) 191 Do czego służą typy? Konkretny przykład - sortowanie Język systemu typów Haskella Wnioskowanie i sprawdzanie typó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 jgyInne spojrzenie na sortowanie Wracamy na ziemię Projekt w Haskellu - testowanie kodu natywnego Nasz kod natywny218 Krótkie wprowadzenie do FFI Haskella Opakowywanie naszego natywnego kodu w Haskellu Eksperymentowanie z GHCi Krótkie wprowadzenie do OuickGheck Pisanie własności równoważności Likwidacja usterek agnieżdżonymiWiele twarzy funkcji Swifta Anatomia funkcji Swifta pomocą potokówWywoływanie wszystkich funkcji Wywoływanie metod Metody instancji są funkcjami rozwiniętymi - uwaga specjalna Wyszukane parametry Kontrola dostępu Wyszukane typy zwrotne Funkcje zagnieżdżone Funkcyjne podejście do Lua
Sygnatura czytelni BWEAiI: XII Ł 165
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 149274 N (1 egz.)
Brak okładki
Książka
W koszyku
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Magazyn
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. S 70958 LE (1 egz.)
Brak okładki
Książka
W koszyku
(Materiały Pomocnicze / Politechnika Rzeszowska)
Materiały pomocnicze do zajęć z przedmiotu "Podstawy programowania funkcyjnego i weryfikacji".
Bibliogr. s. 203.
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Magazyn
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 120201 LE (1 egz.)
Pozycja została dodana do koszyka. Jeśli nie wiesz, do czego służy koszyk, kliknij tutaj, aby poznać szczegóły.
Nie pokazuj tego więcej

Deklaracja dostępności