Steps in scala: an introduction to object-functional programming
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Cambridge [u.a.]
Cambridge Univ. Press
2010
|
Ausgabe: | 1. publ. |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XVII, 485 S. Ill., graph. Darst. |
ISBN: | 9780521762175 9780521747585 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV036590132 | ||
003 | DE-604 | ||
005 | 20101209 | ||
007 | t | ||
008 | 100729s2010 ad|| |||| 00||| eng d | ||
020 | |a 9780521762175 |9 978-0-521-76217-5 | ||
020 | |a 9780521747585 |9 978-0-521-74758-5 | ||
035 | |a (OCoLC)705702582 | ||
035 | |a (DE-599)BVBBV036590132 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-20 |a DE-Aug4 |a DE-83 |a DE-188 | ||
084 | |a ST 231 |0 (DE-625)143618: |2 rvk | ||
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
100 | 1 | |a Loverdos, Christos K. K. |e Verfasser |0 (DE-588)142622745 |4 aut | |
245 | 1 | 0 | |a Steps in scala |b an introduction to object-functional programming |c Christos K. K. Loverdos ; Apostolos Syropoulos |
250 | |a 1. publ. | ||
264 | 1 | |a Cambridge [u.a.] |b Cambridge Univ. Press |c 2010 | |
300 | |a XVII, 485 S. |b Ill., graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 4 | |a Programming languages (Electronic computers) | |
650 | 0 | 7 | |a Scala |g Programmiersprache |0 (DE-588)7658965-1 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Scala |g Programmiersprache |0 (DE-588)7658965-1 |D s |
689 | 0 | |5 DE-604 | |
700 | 1 | |a Syropoulos, Apostolos |e Verfasser |0 (DE-588)124292488 |4 aut | |
856 | 4 | 2 | |m HBZ Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=020510859&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-020510859 |
Datensatz im Suchindex
_version_ | 1804143189034008577 |
---|---|
adam_text | Titel: Steps in Scala
Autor: Loverdos, Christos K. K.
Jahr: 2010
Contents
Preface page xiii
1 Introduction 1
1.1 Object orientation 1
1.2 An overview of functional programming 7
1.3 Extendable languages 9
1.4 Scalar beyond the Java programming language 14
2 Core features 16
16
18
24
29
32
38
42
48
53
56
59
62
64
74
76
84
87
90
92
2.1 Hello World! in Scala
2.2 Scala s basic types
2.3 Classes and objects
2.4 Some basic operators
2.5 Basic built-in control structures
2.6 Subclasses and inheritance
2.7 Functions
2.8 Arrays and tuples
2.9 Command line arguments
2.10 Sets
2.11 Hash tables
2.12 Memo functions
2.13 Lists
2.14 Strings
2.15 Regular expressions
2.16 Scientific computation with Scala
2.17 Inner classes
2.18 Packages
2.19 Documentation comments
2.20 Annotations
viii Contents
Advanced features 95
3.1 Playing with trees 95
3.2 More about pattern matching 103
3.2.1 Types of patterns 103
3.2.2 Sealed classes 107
3.2.3 Optional values 108
3.3 Traits and mix-in composition 109
3.4 Sorting objects 116
3.5 More 3n functions 118
3.6 Polymorphism 125
3.6.1 Types of polymorphism 125
3.6.2 Overloading 127
3.6.3 Implicit conversion: a form of coercion 128
3.6.4 Parametric polymorphism 131
3.6.5 More on implicit parameters 136
3.6.6 Inclusion polymorphism 137
3.6.7 Covariance, contravariance and invariance 138
3.6.8 Bounded polymorphism 140
3.6.9 Views and view bounds 143
3.6.10 Existential types 144
3.6.11 Type projections 147
3.6.12 Type erasure 147
3.7 Nominal and structural typing 148
3.8* Higher order polymorphism 150
3.9 Streams are infinite lists! 156
3.10* Morei on memo functions 158
3.11 Assertions 159
3.12 Setters and getters 161
3.13* Monads 163
Parser builders 171
4.1 Language parsers 171
4.2 Scab s parser builders 174
4.3 An interpreter for a toy language 177
4.4 Domain-specific languages 184
4.5 Monadic parsing 185
XML , processing 187
5.1 What is XML? 187
5.2 Basic XML content manipulation 189
5.3 Producing XHTML content with Scala 193
5.4 XML input and output 196
Contents ix
5.5 XML searching a la Scala 197
5.6 XML pattern matching 199
GUI programming 202
6.1 Hello World! again! 202
6.2 Interactive GUI programming 207
6.3 Building a desktop calculator 212
6.4 Simple graphics with Scala 216
6.5 Creating pictorial data 225
6.6 Dialogs 231
6.7 Menus 238
6.7.1 Radio buttons 238
6.7.2 Check boxes 240
6.7.3 Combo boxes 243
6.7.4 Building a text editor with a menu bar and menus 250
6.8 Tabs 257
6.8.1 Simple tabs 257
6.8.2 User-disposable tabs 258
6.8.3 GUI lists, sliders, and split panes 263
6.9 More on text components 266
6.10 Tables 271
6.11 Applets 275
6.12 Functional graphics 280
Concurrent programming 283
7.1 Programming with threads: an overview 283
7.2 Animation with threads 289
7.3 Using mailboxes 293
7.4 Actors: basic ideas 295
7.5 Message passing with actors 298
7.6 Computing factorials with actors 303
On paths and a bit of algebraic abstraction 307
8.1 Path requirements 308
8.2 Path API 310
8.3 Empty paths 311
8.4 Unix paths 312
8.5 Windows paths 314
8.5.1 Simple paths 315
8.5.2 UNC paths 315
8.5.3 Drive absolute paths 315
8.6 Path factory 318
8.6.1 A few more utility methods 320
Contents
8.6.2 The factory method 322
8.6.3 Canonical paths 324
8.6.4 Combining paths 326
8.7 Notes on representation 326
8.8 Notes on visibility 327
8.9 Testing paths 327
8.9.1 User-friendliness 328
8.10 Algebraic abstractions 329
8.10.1 Semigroups 330
8.10.2 Monoids 331
9 Virtual files coming into existence 334
9.1 Types, requirements and API 335
9.1.1 Types 335
9.1.2 Design goals 335
9.1.3 VFSAPI 336
9.1.4 VFile API 339
9.2 Native file system 342
9.3 Memory file system 346
9.3.1 Memory VFS 347
9.3.2 Memory files and folders 348
9.4 Zip file system 351
9.4.1 Preliminaries 351
9.4.2 Zip VFS 354
9.4.3 Zip VFS factory object 357
9.4.4 A VFile that does not exist 357
9.4.5 Zip VFile 358
10 Compositional file matching 360
10.1 Matching files 360
10.2 A less procedural approach 362
10.3 Glob-style matching implementation 367
10.3.1 Remarks on a (non) pure-Scala implementation 370
10.4 Using glob-style matching 371
10.5 Going boolean 376
10.5.1 Less redundancy 377
10.6 Any level down the hierarchy 379
11 Searching, iterating, traversing 380
11.1 Traditional knowledge 380
11.1.1 Iterables 380
11.1.2 Traversables 381
11.1.3 Test trees and expected search results 382
Contents xi
11.2 Iterating the hierarchy 385
11.2.1 The shape of our data 385
11.2.2 Abstracting the ingredients 389
11.3 Traversing the hierarchy 397
11.4 Going on further 399
12 The expression problem 402
12.1 Introduction 402
12.2 Data and operations 403
12.3 Data-centric approach with subclassing 407
12.4 Operation-centric approach with subclassing 410
12.5 Generic operation-centric approach 412
12.6 Generic data-centric approach 415
12.7 OO decomposition with abstract types 417
12.8 Operation-centric decomposition with abstract types 421
12.9 Summary 424
13 A computer algebra system 426
13.1 Mechanical symbol manipulation 426
13.2 The grammar 427
13.3 Basic data model 428
13.4 Experimenting with the data model 429
13.5 Basic operations 430
13.5.1 Finding the derivative of a function 430
13.5.2 Simplifying an expression 432
13.5.3 Pretty-printing expressions 433
13.6 Putting it all together 436
13.7 Functions of more than one variable 437
13.8 Summary and further reading 437
Appendix A: Multimedia processing 439
Appendix B: Distributing a Scala application along with Scala itself 441
Appendix C: Working with the compiler and the interpreter 449
Appendix D: Scala s grammar 463
References 470
Name index 474
Subject index 475
|
any_adam_object | 1 |
author | Loverdos, Christos K. K. Syropoulos, Apostolos |
author_GND | (DE-588)142622745 (DE-588)124292488 |
author_facet | Loverdos, Christos K. K. Syropoulos, Apostolos |
author_role | aut aut |
author_sort | Loverdos, Christos K. K. |
author_variant | c k k l ckk ckkl a s as |
building | Verbundindex |
bvnumber | BV036590132 |
classification_rvk | ST 231 ST 250 |
ctrlnum | (OCoLC)705702582 (DE-599)BVBBV036590132 |
discipline | Informatik |
edition | 1. publ. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01554nam a2200373 c 4500</leader><controlfield tag="001">BV036590132</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20101209 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">100729s2010 ad|| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780521762175</subfield><subfield code="9">978-0-521-76217-5</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780521747585</subfield><subfield code="9">978-0-521-74758-5</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)705702582</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV036590132</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakwb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-20</subfield><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-188</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 231</subfield><subfield code="0">(DE-625)143618:</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="100" ind1="1" ind2=" "><subfield code="a">Loverdos, Christos K. K.</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)142622745</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Steps in scala</subfield><subfield code="b">an introduction to object-functional programming</subfield><subfield code="c">Christos K. K. Loverdos ; Apostolos Syropoulos</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">1. publ.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Cambridge [u.a.]</subfield><subfield code="b">Cambridge Univ. Press</subfield><subfield code="c">2010</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XVII, 485 S.</subfield><subfield code="b">Ill., graph. Darst.</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=" " ind2="4"><subfield code="a">Programming languages (Electronic computers)</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Scala</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)7658965-1</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Scala</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)7658965-1</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Syropoulos, Apostolos</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)124292488</subfield><subfield code="4">aut</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">HBZ Datenaustausch</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=020510859&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-020510859</subfield></datafield></record></collection> |
id | DE-604.BV036590132 |
illustrated | Illustrated |
indexdate | 2024-07-09T22:43:35Z |
institution | BVB |
isbn | 9780521762175 9780521747585 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-020510859 |
oclc_num | 705702582 |
open_access_boolean | |
owner | DE-20 DE-Aug4 DE-83 DE-188 |
owner_facet | DE-20 DE-Aug4 DE-83 DE-188 |
physical | XVII, 485 S. Ill., graph. Darst. |
publishDate | 2010 |
publishDateSearch | 2010 |
publishDateSort | 2010 |
publisher | Cambridge Univ. Press |
record_format | marc |
spelling | Loverdos, Christos K. K. Verfasser (DE-588)142622745 aut Steps in scala an introduction to object-functional programming Christos K. K. Loverdos ; Apostolos Syropoulos 1. publ. Cambridge [u.a.] Cambridge Univ. Press 2010 XVII, 485 S. Ill., graph. Darst. txt rdacontent n rdamedia nc rdacarrier Programming languages (Electronic computers) Scala Programmiersprache (DE-588)7658965-1 gnd rswk-swf Scala Programmiersprache (DE-588)7658965-1 s DE-604 Syropoulos, Apostolos Verfasser (DE-588)124292488 aut HBZ Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=020510859&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Loverdos, Christos K. K. Syropoulos, Apostolos Steps in scala an introduction to object-functional programming Programming languages (Electronic computers) Scala Programmiersprache (DE-588)7658965-1 gnd |
subject_GND | (DE-588)7658965-1 |
title | Steps in scala an introduction to object-functional programming |
title_auth | Steps in scala an introduction to object-functional programming |
title_exact_search | Steps in scala an introduction to object-functional programming |
title_full | Steps in scala an introduction to object-functional programming Christos K. K. Loverdos ; Apostolos Syropoulos |
title_fullStr | Steps in scala an introduction to object-functional programming Christos K. K. Loverdos ; Apostolos Syropoulos |
title_full_unstemmed | Steps in scala an introduction to object-functional programming Christos K. K. Loverdos ; Apostolos Syropoulos |
title_short | Steps in scala |
title_sort | steps in scala an introduction to object functional programming |
title_sub | an introduction to object-functional programming |
topic | Programming languages (Electronic computers) Scala Programmiersprache (DE-588)7658965-1 gnd |
topic_facet | Programming languages (Electronic computers) Scala Programmiersprache |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=020510859&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT loverdoschristoskk stepsinscalaanintroductiontoobjectfunctionalprogramming AT syropoulosapostolos stepsinscalaanintroductiontoobjectfunctionalprogramming |