Funktionale Programmierung in Java: eine umfassende Einführung
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | German |
Veröffentlicht: |
Heidelberg
dpunkt.verlag
2020
|
Ausgabe: | 1. Auflage |
Schlagworte: | |
Online-Zugang: | Inhaltstext Inhaltsverzeichnis |
Beschreibung: | xix, 321 Seiten Illustrationen, Diagramme |
ISBN: | 9783864907579 3864907578 |
Internformat
MARC
LEADER | 00000nam a22000008c 4500 | ||
---|---|---|---|
001 | BV046840682 | ||
003 | DE-604 | ||
005 | 20201222 | ||
007 | t | ||
008 | 200806s2020 gw a||| |||| 00||| ger d | ||
015 | |a 20,N01 |2 dnb | ||
020 | |a 9783864907579 |9 978-3-86490-757-9 | ||
020 | |a 3864907578 |9 3-86490-757-8 | ||
035 | |a (OCoLC)1183349955 | ||
035 | |a (DE-599)DNB1201951828 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a ger | |
044 | |a gw |c XA-DE-BW | ||
049 | |a DE-1050 |a DE-29T |a DE-706 |a DE-860 |a DE-1051 |a DE-19 |a DE-92 |a DE-859 |a DE-1102 |a DE-83 |a DE-B768 |a DE-91G |a DE-703 |a DE-739 |a DE-573 |a DE-20 |a DE-M347 |a DE-634 |a DE-1028 |a DE-526 | ||
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a DAT 544 |2 stub | ||
084 | |a 004 |2 sdnb | ||
084 | |a DAT 362 |2 stub | ||
100 | 1 | |a Prähofer, Herbert |e Verfasser |0 (DE-588)1215207565 |4 aut | |
245 | 1 | 0 | |a Funktionale Programmierung in Java |b eine umfassende Einführung |c Herbert Prähofer |
250 | |a 1. Auflage | ||
264 | 1 | |a Heidelberg |b dpunkt.verlag |c 2020 | |
300 | |a xix, 321 Seiten |b Illustrationen, Diagramme | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Objektorientierte Programmierung |0 (DE-588)4233947-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Funktionale Programmierung |0 (DE-588)4198740-8 |2 gnd |9 rswk-swf |
653 | |a APIs | ||
653 | |a Java Streams | ||
653 | |a reaktive Streams | ||
653 | |a asynchronen Programmierung | ||
653 | |a Scala | ||
653 | |a Kotlin | ||
689 | 0 | 0 | |a Funktionale Programmierung |0 (DE-588)4198740-8 |D s |
689 | 0 | 1 | |a Objektorientierte Programmierung |0 (DE-588)4233947-9 |D s |
689 | 0 | 2 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |D s |
689 | 1 | 1 | |a Funktionale Programmierung |0 (DE-588)4198740-8 |D s |
689 | 1 | |5 DE-604 | |
710 | 2 | |a Dpunkt.Verlag (Heidelberg) |0 (DE-588)6085529-0 |4 pbl | |
776 | 0 | 8 | |i Erscheint auch als |n Online-Ausgabe, PDF |z 978-3-96088-984-7 |
776 | 0 | 8 | |i Erscheint auch als |n Online-Ausgabe, EPUB |z 978-3-96088-985-4 |
776 | 0 | 8 | |i Erscheint auch als |n Online-Ausgabe, MOBI |z 978-3-96088-986-1 |
856 | 4 | 2 | |m X:MVB |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=dfbe6b246674478b8e4cbb5fef3004c9&prov=M&dok_var=1&dok_ext=htm |3 Inhaltstext |
856 | 4 | 2 | |m Digitalisierung UB Passau - ADAM Catalogue Enrichment |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=032249657&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-032249657 |
Datensatz im Suchindex
_version_ | 1810716504330600448 |
---|---|
adam_text |
vii Inhaltsverzeichnis Vorwort xiii 1 Einleitung î 1.1 Elementare Konzepte und Begriffe . 5 1.2 Funktionale Programmierung in Java. 10 2 Sprachliche Grundlagen 11 2.1 Java Generics. 11 2.2 2.1.1 Typparameter. 2.1.2 Typconstraints . 2.1.3 Ko-und Kontravarianz. 2.1.4 Typinferenz bei Generics. 2.1.5 Schwachstellen der Generics in Java . Default-Methoden . 2.3 Lambda-Ausdrücke . 21 2.4 2.3.1 Formen von Lambda-Ausdrücken. 2.3.2 Typ eines Lambda-Ausdrucks. 2.3.3 Ausnahmen bei Lambda-Ausdrücken . 2.3.4 Closures . Funktionale Interfaces . 2.5 Methodenreferenzen. 32 2.6 Zusammenfassung
. 33 3 Programmieren ohne Seiteneffekte 35 3.1 Reine Funktionen. 35 3.2 3.1.1 Iteration vs. Rekursion . 3.1.2 Referentielle Transparenz und Ersetzungsprinzip . 3.1.3 Funktionen mit Gedächtnis. Funktionale Ausnahmebehandlung mit Optional. 37 38 39 41 11 12 13 16 18 19 24 24 25 27 29
Inhaltsverceichnis viii 3.3 Funktionale Listen.43 3.4 3.3.1 Beispielanwendung.49 Paare und Tupel . 51 3.5 Zusammenfassung.52 4 Programmieren mit Funktionsparametern 4.1 Listenverarbeitung mit Funktionen höherer Ordnung .56 4.2 Flexible Programmschnittstellen . 59 4.3 Algorithmen . 63 4.4 4.3.1 Tiefensuche . 63 4.3.2 Verallgemeinerung der Suche.66 Entwurfsmuster. 69 4.5 4.4.1 Strategie. 69 4.4.2 Kommando .70 4.4.3 Besucher. 73 Eingebettete und bedingte Ausführung . 78 4.6 4.5.1 Eingebetteter Code.78 4.5.2 Bedingte
Ausführung .80 4.5.3 Fallunterscheidungen.82 4.5.4 Typtests. 85 Auswertung nach Bedarf. 88 4.7 4.6.1 Faule Itera toren . 88 4.6.2 Unendliche Folgen .90 4.6.3 Faule Iteration über die Knoten einesGraphen.91 Zusammenfassung.92 5 Kombination von Funktionen 5.1 Flüssige Schnittstellen . 95 5.2 Funktionskomposition. 96 5.3 5.2.1 Aufrufketten beim funktionalenInterface Function . 96 5.2.2 Logische Verknüpfungen bei Predicate.98 5.2.3 Bilden von Vergleichsketten mitComparator. 99 5.2.4 Beispiel-Workflows .102 Kombinator-Parser .105 5.4 5.3.1 Parser und Parser-Ergebnisse .105 5.3.2
Kombinationsoperatoren. 109 5.3.3 Parser für Boolesche Ausdrücke. 112 Domänen-spezifische Sprachen .116 5.5 5.4.1 Fallbeispiel Zustandsmaschinen.117 Zusammenfassung. 122 55 95
Inhaltsverzeichnis ix 6 Funktoren, Monoide und Monaden 123 6.1 Funktoren. 124 6.2 6.1.1 Funktor Optional . 6.1.2 Gesetze und Eigenschaften . Monoide und Reduktion . 125 126 128 6.3 6.2.1 Monoide. 6.2.2 Reduktion. 6.2.3 Monoide in Java. 6.2.4 Reduzierbare Strukturen. 6.2.5 Anwendungsbeispiele zur Reduktion mit Monoidén. Monaden . 128 129 130 132 136 139 6.4 6.3.1 Monade Optional. 142 6.3.2 Monade Parser . 143 6.3.3 Gesetze . .'. 144 6.3.4 Bedeutung von Monaden . 145 6.3.5 MonadPlus: Monade mit monoider Kombination. 153 Zusammenfassung . 154 7 Streams 155 7.1 Grundlagen von Streams
. 155 7.2 7.1.1 Ein erstes Beispiel . 7.1.2 Externe vs. interne Iteration. 7.1.3 Bedarfsauswertung . Klassen von Streams. 156 156 157 160 7.3 Stream-Operationen. 162 7.4 7.3.1 Erzeuger-Operationen. 7.3.2 Zwischenoperationen . 7.3.3 Terminal-Operationen. Collectors. 163 166 168 172 7.5 7.4.1 Interface Collector. 7.4.2 Vordefinierte Collectors . 7.4.3 Downstream Collectors. 7.4.4 Eine eigene Collector-Implementierung. Anwendungsbeispiele. 172 174 176 178 180 7.6 7.5.1 Ergebnisauswertung mit Streams. 181 7.5.2 Wortindex zu einem Text . 184 Hinweise
. 187 7.6.1 7.6.2 7.6.3 7.6.4 Einmal-Iteration . Begrenzung von unendlichen Streams . Zustandslose und zustandsbehaftete Operationen. Reihenfolge von Operationen . 187 188 188 189
Inhaltsverzeichnis x 7.7 7.6.5 Kombinationen von Operationen. 190 Interne Implementierung. 191 7.8 7.7.1 Beispiel. 193 Zusammenfassung.194 8 Parallele Streams 8.1 Erzeugen von parallelen Streams. 195 8.2 Parallele Ausführung.196 8.3 8.2.1 Spliterators.199 8.2.2 Ausführung durch Fork/Join-Pool .201 8.2.3 Konfiguration des Fork/Join-Thread-Pools. 204 Bedingungen bei paralleler Ausführung .205 8.4 8.3.1 Parallele Ausführung und Seiteneffekte . 205 8.3.2 Parallele Ausführung und zustandsbehaftete Berechnungen 206 8.3.3 Eigenschaften der Parameter von reduce . 207 8.3.4 Paralleles Sammeln.208 Eaufzeit.210 8.5 Zusammenfassung. 212 9 Asynchrone Funktionsketten 9.1 Eine Lösung mit parallelen
Streams.214 9.2 Asynchrone Lösung mit Futures . 216 9.3 CompletableFuture . 218 9.4 Asynchrone Programmschnittstellen . 219 9.5 CompletableFuture als Promise. 219 9.6 Kombination von CompletableFutures . 221 9.7 9.6.1 Beispiel.223 Zusammenfassung. 225 10 Reaktive Streams 10.1 Grundlagen. 228 10.2 10.1.1 Kontrakt von Observable.233 10.1.2 Erzeugen von Observables.234 10.1.3 Anmelden und Abmelden von Observer. 236 Varianten . 238 195 213 227 10.2.1 Single.238 10.2.2 Completable. 240 10.2.3 Maybe .241
Inhaítsverzeichnis 10.3 xi 10.6 Hot und Cold Observables. 10.3.1 ConnectableObservable. 10.3.2 Beispiel Echtzeitdaten . Operationen. 10.4.1 Abbildungen. 10.4.2 Filtern und Teilmengen. 10.4.3 Reduktion. 10.4.4 Sammeln. 10.4.5 Operationen mit Zeit . 10.4.6 Kombinationen. 10.4.7 Konvertierungen. 10.4.8 Seiteneffekte . Nebenläufigkeit . 10.5.1 Serialisierung von nebenläufigen Ereignissen. 10.5.2 subscribeOn und Scheduler. 10.5.3 observeOn. Fehlerbehandlung. 10.7 10.6.1 Fehlerereignisse
auslösen. 263 10.6.2 Auf Fehler reagieren . 264 Rückstau und Flusskontrolle . 266 10.8 10.7.1 Reduktion der Menge der Ereignisse. 266 10.7.2 Flowables . 267 Testen reaktiver Streams. 270 10.9 Zusammenfassung . 272 11 Testen mit und von Funktionen 11.1 Funktionsparameter bei JUnit 5 . 273 11.2 AssertJ: Eine DST für Unit-Tests. 276 11.3 Eigenschaftsbasiertes Testen nach QuickCheck . 277 11.4 11.3.1 Generatoren von Zufallswerten. 11.3.2 Tests. 11.3.3 Shrinken der Werte. Zusammenfassung . 279 281 284 287 12 Weiterführende Konzepte 289 A Bibliografie 299 В Laufzeitexperimente Parallele Streams 305 Index 317 10.4 10.5 243 244 245 247 249 250 251 252 255 257 258 258 259 259 260 261 263 273 |
adam_txt |
vii Inhaltsverzeichnis Vorwort xiii 1 Einleitung î 1.1 Elementare Konzepte und Begriffe . 5 1.2 Funktionale Programmierung in Java. 10 2 Sprachliche Grundlagen 11 2.1 Java Generics. 11 2.2 2.1.1 Typparameter. 2.1.2 Typconstraints . 2.1.3 Ko-und Kontravarianz. 2.1.4 Typinferenz bei Generics. 2.1.5 Schwachstellen der Generics in Java . Default-Methoden . 2.3 Lambda-Ausdrücke . 21 2.4 2.3.1 Formen von Lambda-Ausdrücken. 2.3.2 Typ eines Lambda-Ausdrucks. 2.3.3 Ausnahmen bei Lambda-Ausdrücken . 2.3.4 Closures . Funktionale Interfaces . 2.5 Methodenreferenzen. 32 2.6 Zusammenfassung
. 33 3 Programmieren ohne Seiteneffekte 35 3.1 Reine Funktionen. 35 3.2 3.1.1 Iteration vs. Rekursion . 3.1.2 Referentielle Transparenz und Ersetzungsprinzip . 3.1.3 Funktionen mit Gedächtnis. Funktionale Ausnahmebehandlung mit Optional. 37 38 39 41 11 12 13 16 18 19 24 24 25 27 29
Inhaltsverceichnis viii 3.3 Funktionale Listen.43 3.4 3.3.1 Beispielanwendung.49 Paare und Tupel . 51 3.5 Zusammenfassung.52 4 Programmieren mit Funktionsparametern 4.1 Listenverarbeitung mit Funktionen höherer Ordnung .56 4.2 Flexible Programmschnittstellen . 59 4.3 Algorithmen . 63 4.4 4.3.1 Tiefensuche . 63 4.3.2 Verallgemeinerung der Suche.66 Entwurfsmuster. 69 4.5 4.4.1 Strategie. 69 4.4.2 Kommando .70 4.4.3 Besucher. 73 Eingebettete und bedingte Ausführung . 78 4.6 4.5.1 Eingebetteter Code.78 4.5.2 Bedingte
Ausführung .80 4.5.3 Fallunterscheidungen.82 4.5.4 Typtests. 85 Auswertung nach Bedarf. 88 4.7 4.6.1 Faule Itera toren . 88 4.6.2 Unendliche Folgen .90 4.6.3 Faule Iteration über die Knoten einesGraphen.91 Zusammenfassung.92 5 Kombination von Funktionen 5.1 Flüssige Schnittstellen . 95 5.2 Funktionskomposition. 96 5.3 5.2.1 Aufrufketten beim funktionalenInterface Function . 96 5.2.2 Logische Verknüpfungen bei Predicate.98 5.2.3 Bilden von Vergleichsketten mitComparator. 99 5.2.4 Beispiel-Workflows .102 Kombinator-Parser .105 5.4 5.3.1 Parser und Parser-Ergebnisse .105 5.3.2
Kombinationsoperatoren. 109 5.3.3 Parser für Boolesche Ausdrücke. 112 Domänen-spezifische Sprachen .116 5.5 5.4.1 Fallbeispiel Zustandsmaschinen.117 Zusammenfassung. 122 55 95
Inhaltsverzeichnis ix 6 Funktoren, Monoide und Monaden 123 6.1 Funktoren. 124 6.2 6.1.1 Funktor Optional . 6.1.2 Gesetze und Eigenschaften . Monoide und Reduktion . 125 126 128 6.3 6.2.1 Monoide. 6.2.2 Reduktion. 6.2.3 Monoide in Java. 6.2.4 Reduzierbare Strukturen. 6.2.5 Anwendungsbeispiele zur Reduktion mit Monoidén. Monaden . 128 129 130 132 136 139 6.4 6.3.1 Monade Optional. 142 6.3.2 Monade Parser . 143 6.3.3 Gesetze . .'. 144 6.3.4 Bedeutung von Monaden . 145 6.3.5 MonadPlus: Monade mit monoider Kombination. 153 Zusammenfassung . 154 7 Streams 155 7.1 Grundlagen von Streams
. 155 7.2 7.1.1 Ein erstes Beispiel . 7.1.2 Externe vs. interne Iteration. 7.1.3 Bedarfsauswertung . Klassen von Streams. 156 156 157 160 7.3 Stream-Operationen. 162 7.4 7.3.1 Erzeuger-Operationen. 7.3.2 Zwischenoperationen . 7.3.3 Terminal-Operationen. Collectors. 163 166 168 172 7.5 7.4.1 Interface Collector. 7.4.2 Vordefinierte Collectors . 7.4.3 Downstream Collectors. 7.4.4 Eine eigene Collector-Implementierung. Anwendungsbeispiele. 172 174 176 178 180 7.6 7.5.1 Ergebnisauswertung mit Streams. 181 7.5.2 Wortindex zu einem Text . 184 Hinweise
. 187 7.6.1 7.6.2 7.6.3 7.6.4 Einmal-Iteration . Begrenzung von unendlichen Streams . Zustandslose und zustandsbehaftete Operationen. Reihenfolge von Operationen . 187 188 188 189
Inhaltsverzeichnis x 7.7 7.6.5 Kombinationen von Operationen. 190 Interne Implementierung. 191 7.8 7.7.1 Beispiel. 193 Zusammenfassung.194 8 Parallele Streams 8.1 Erzeugen von parallelen Streams. 195 8.2 Parallele Ausführung.196 8.3 8.2.1 Spliterators.199 8.2.2 Ausführung durch Fork/Join-Pool .201 8.2.3 Konfiguration des Fork/Join-Thread-Pools. 204 Bedingungen bei paralleler Ausführung .205 8.4 8.3.1 Parallele Ausführung und Seiteneffekte . 205 8.3.2 Parallele Ausführung und zustandsbehaftete Berechnungen 206 8.3.3 Eigenschaften der Parameter von reduce . 207 8.3.4 Paralleles Sammeln.208 Eaufzeit.210 8.5 Zusammenfassung. 212 9 Asynchrone Funktionsketten 9.1 Eine Lösung mit parallelen
Streams.214 9.2 Asynchrone Lösung mit Futures . 216 9.3 CompletableFuture . 218 9.4 Asynchrone Programmschnittstellen . 219 9.5 CompletableFuture als Promise. 219 9.6 Kombination von CompletableFutures . 221 9.7 9.6.1 Beispiel.223 Zusammenfassung. 225 10 Reaktive Streams 10.1 Grundlagen. 228 10.2 10.1.1 Kontrakt von Observable.233 10.1.2 Erzeugen von Observables.234 10.1.3 Anmelden und Abmelden von Observer. 236 Varianten . 238 195 213 227 10.2.1 Single.238 10.2.2 Completable. 240 10.2.3 Maybe .241
Inhaítsverzeichnis 10.3 xi 10.6 Hot und Cold Observables. 10.3.1 ConnectableObservable. 10.3.2 Beispiel Echtzeitdaten . Operationen. 10.4.1 Abbildungen. 10.4.2 Filtern und Teilmengen. 10.4.3 Reduktion. 10.4.4 Sammeln. 10.4.5 Operationen mit Zeit . 10.4.6 Kombinationen. 10.4.7 Konvertierungen. 10.4.8 Seiteneffekte . Nebenläufigkeit . 10.5.1 Serialisierung von nebenläufigen Ereignissen. 10.5.2 subscribeOn und Scheduler. 10.5.3 observeOn. Fehlerbehandlung. 10.7 10.6.1 Fehlerereignisse
auslösen. 263 10.6.2 Auf Fehler reagieren . 264 Rückstau und Flusskontrolle . 266 10.8 10.7.1 Reduktion der Menge der Ereignisse. 266 10.7.2 Flowables . 267 Testen reaktiver Streams. 270 10.9 Zusammenfassung . 272 11 Testen mit und von Funktionen 11.1 Funktionsparameter bei JUnit 5 . 273 11.2 AssertJ: Eine DST für Unit-Tests. 276 11.3 Eigenschaftsbasiertes Testen nach QuickCheck . 277 11.4 11.3.1 Generatoren von Zufallswerten. 11.3.2 Tests. 11.3.3 Shrinken der Werte. Zusammenfassung . 279 281 284 287 12 Weiterführende Konzepte 289 A Bibliografie 299 В Laufzeitexperimente Parallele Streams 305 Index 317 10.4 10.5 243 244 245 247 249 250 251 252 255 257 258 258 259 259 260 261 263 273 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Prähofer, Herbert |
author_GND | (DE-588)1215207565 |
author_facet | Prähofer, Herbert |
author_role | aut |
author_sort | Prähofer, Herbert |
author_variant | h p hp |
building | Verbundindex |
bvnumber | BV046840682 |
classification_rvk | ST 250 |
classification_tum | DAT 544 DAT 362 |
ctrlnum | (OCoLC)1183349955 (DE-599)DNB1201951828 |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | 1. Auflage |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a22000008c 4500</leader><controlfield tag="001">BV046840682</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20201222</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">200806s2020 gw a||| |||| 00||| ger d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">20,N01</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783864907579</subfield><subfield code="9">978-3-86490-757-9</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">3864907578</subfield><subfield code="9">3-86490-757-8</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1183349955</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB1201951828</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">ger</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">XA-DE-BW</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-1050</subfield><subfield code="a">DE-29T</subfield><subfield code="a">DE-706</subfield><subfield code="a">DE-860</subfield><subfield code="a">DE-1051</subfield><subfield code="a">DE-19</subfield><subfield code="a">DE-92</subfield><subfield code="a">DE-859</subfield><subfield code="a">DE-1102</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-B768</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-703</subfield><subfield code="a">DE-739</subfield><subfield code="a">DE-573</subfield><subfield code="a">DE-20</subfield><subfield code="a">DE-M347</subfield><subfield code="a">DE-634</subfield><subfield code="a">DE-1028</subfield><subfield code="a">DE-526</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 544</subfield><subfield code="2">stub</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 362</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Prähofer, Herbert</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)1215207565</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Funktionale Programmierung in Java</subfield><subfield code="b">eine umfassende Einführung</subfield><subfield code="c">Herbert Prähofer</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">1. Auflage</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Heidelberg</subfield><subfield code="b">dpunkt.verlag</subfield><subfield code="c">2020</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">xix, 321 Seiten</subfield><subfield code="b">Illustrationen, Diagramme</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Objektorientierte Programmierung</subfield><subfield code="0">(DE-588)4233947-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Funktionale Programmierung</subfield><subfield code="0">(DE-588)4198740-8</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">APIs</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Java Streams</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">reaktive Streams</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">asynchronen Programmierung</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Scala</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Kotlin</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Funktionale Programmierung</subfield><subfield code="0">(DE-588)4198740-8</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Objektorientierte Programmierung</subfield><subfield code="0">(DE-588)4233947-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="2"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="1"><subfield code="a">Funktionale Programmierung</subfield><subfield code="0">(DE-588)4198740-8</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="710" ind1="2" ind2=" "><subfield code="a">Dpunkt.Verlag (Heidelberg)</subfield><subfield code="0">(DE-588)6085529-0</subfield><subfield code="4">pbl</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Erscheint auch als</subfield><subfield code="n">Online-Ausgabe, PDF</subfield><subfield code="z">978-3-96088-984-7</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Erscheint auch als</subfield><subfield code="n">Online-Ausgabe, EPUB</subfield><subfield code="z">978-3-96088-985-4</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Erscheint auch als</subfield><subfield code="n">Online-Ausgabe, MOBI</subfield><subfield code="z">978-3-96088-986-1</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">X:MVB</subfield><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=dfbe6b246674478b8e4cbb5fef3004c9&prov=M&dok_var=1&dok_ext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Passau - ADAM Catalogue Enrichment</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=032249657&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-032249657</subfield></datafield></record></collection> |
id | DE-604.BV046840682 |
illustrated | Illustrated |
index_date | 2024-07-03T15:07:48Z |
indexdate | 2024-09-20T12:03:44Z |
institution | BVB |
institution_GND | (DE-588)6085529-0 |
isbn | 9783864907579 3864907578 |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-032249657 |
oclc_num | 1183349955 |
open_access_boolean | |
owner | DE-1050 DE-29T DE-706 DE-860 DE-1051 DE-19 DE-BY-UBM DE-92 DE-859 DE-1102 DE-83 DE-B768 DE-91G DE-BY-TUM DE-703 DE-739 DE-573 DE-20 DE-M347 DE-634 DE-1028 DE-526 |
owner_facet | DE-1050 DE-29T DE-706 DE-860 DE-1051 DE-19 DE-BY-UBM DE-92 DE-859 DE-1102 DE-83 DE-B768 DE-91G DE-BY-TUM DE-703 DE-739 DE-573 DE-20 DE-M347 DE-634 DE-1028 DE-526 |
physical | xix, 321 Seiten Illustrationen, Diagramme |
publishDate | 2020 |
publishDateSearch | 2020 |
publishDateSort | 2020 |
publisher | dpunkt.verlag |
record_format | marc |
spelling | Prähofer, Herbert Verfasser (DE-588)1215207565 aut Funktionale Programmierung in Java eine umfassende Einführung Herbert Prähofer 1. Auflage Heidelberg dpunkt.verlag 2020 xix, 321 Seiten Illustrationen, Diagramme txt rdacontent n rdamedia nc rdacarrier Java Programmiersprache (DE-588)4401313-9 gnd rswk-swf Objektorientierte Programmierung (DE-588)4233947-9 gnd rswk-swf Funktionale Programmierung (DE-588)4198740-8 gnd rswk-swf APIs Java Streams reaktive Streams asynchronen Programmierung Scala Kotlin Funktionale Programmierung (DE-588)4198740-8 s Objektorientierte Programmierung (DE-588)4233947-9 s Java Programmiersprache (DE-588)4401313-9 s DE-604 Dpunkt.Verlag (Heidelberg) (DE-588)6085529-0 pbl Erscheint auch als Online-Ausgabe, PDF 978-3-96088-984-7 Erscheint auch als Online-Ausgabe, EPUB 978-3-96088-985-4 Erscheint auch als Online-Ausgabe, MOBI 978-3-96088-986-1 X:MVB text/html http://deposit.dnb.de/cgi-bin/dokserv?id=dfbe6b246674478b8e4cbb5fef3004c9&prov=M&dok_var=1&dok_ext=htm Inhaltstext Digitalisierung UB Passau - ADAM Catalogue Enrichment application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=032249657&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Prähofer, Herbert Funktionale Programmierung in Java eine umfassende Einführung Java Programmiersprache (DE-588)4401313-9 gnd Objektorientierte Programmierung (DE-588)4233947-9 gnd Funktionale Programmierung (DE-588)4198740-8 gnd |
subject_GND | (DE-588)4401313-9 (DE-588)4233947-9 (DE-588)4198740-8 |
title | Funktionale Programmierung in Java eine umfassende Einführung |
title_auth | Funktionale Programmierung in Java eine umfassende Einführung |
title_exact_search | Funktionale Programmierung in Java eine umfassende Einführung |
title_exact_search_txtP | Funktionale Programmierung in Java eine umfassende Einführung |
title_full | Funktionale Programmierung in Java eine umfassende Einführung Herbert Prähofer |
title_fullStr | Funktionale Programmierung in Java eine umfassende Einführung Herbert Prähofer |
title_full_unstemmed | Funktionale Programmierung in Java eine umfassende Einführung Herbert Prähofer |
title_short | Funktionale Programmierung in Java |
title_sort | funktionale programmierung in java eine umfassende einfuhrung |
title_sub | eine umfassende Einführung |
topic | Java Programmiersprache (DE-588)4401313-9 gnd Objektorientierte Programmierung (DE-588)4233947-9 gnd Funktionale Programmierung (DE-588)4198740-8 gnd |
topic_facet | Java Programmiersprache Objektorientierte Programmierung Funktionale Programmierung |
url | http://deposit.dnb.de/cgi-bin/dokserv?id=dfbe6b246674478b8e4cbb5fef3004c9&prov=M&dok_var=1&dok_ext=htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=032249657&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT prahoferherbert funktionaleprogrammierunginjavaeineumfassendeeinfuhrung AT dpunktverlagheidelberg funktionaleprogrammierunginjavaeineumfassendeeinfuhrung |