Muutke küpsiste eelistusi

Scala: From a Functional Programming Perspective: An Introduction to the Programming Language 1st ed. 2016 [Pehme köide]

  • Formaat: Paperback / softback, 124 pages, kõrgus x laius: 235x155 mm, kaal: 2234 g, 7 Illustrations, black and white; XIII, 124 p. 7 illus., 1 Paperback / softback
  • Sari: Lecture Notes in Computer Science 9980
  • Ilmumisaeg: 21-Sep-2016
  • Kirjastus: Springer International Publishing AG
  • ISBN-10: 3319464809
  • ISBN-13: 9783319464800
  • Pehme köide
  • Hind: 48,70 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Tavahind: 57,29 €
  • Säästad 15%
  • Raamatu kohalejõudmiseks kirjastusest kulub orienteeruvalt 2-4 nädalat
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Tellimisaeg 2-4 nädalat
  • Lisa soovinimekirja
  • Formaat: Paperback / softback, 124 pages, kõrgus x laius: 235x155 mm, kaal: 2234 g, 7 Illustrations, black and white; XIII, 124 p. 7 illus., 1 Paperback / softback
  • Sari: Lecture Notes in Computer Science 9980
  • Ilmumisaeg: 21-Sep-2016
  • Kirjastus: Springer International Publishing AG
  • ISBN-10: 3319464809
  • ISBN-13: 9783319464800
This book gives an introduction to the programming language Scala. It presents it from a functional programming perspective. The book explains with detail functional programming and recursivity, and includes chapters on lazy and eager evaluation, streams, higher-order functions (including map, fold, reduce, and aggregate), and algebraic data types. The book also describes the object-oriented aspects of Scala, as they are a fundamental part of the language. In addition, the book includes a chapter on parallelism in Scala, giving an overview of the actor model.

An introduction to functional programming languages.- The basics of the language.- Lazy and eager evaluation.- Object-oriented programming in Scala.- Types and classes revisited: polymorphism.- Scala: OOL and FP.- Algebraic data types.- Parallelism. 
1 An Introduction to Functional Programming Languages
1(6)
1.1 Main Characteristics of Functional Programming Languages
2(1)
1.2 Some Functional Programming Languages
3(1)
1.2.1 LISP
3(1)
1.2.2 FP
3(1)
1.2.3 Standard ML (SML)
4(1)
1.2.4 Haskell
4(1)
1.3 Scala
4(1)
1.4 Running Scala
4(3)
2 The Basics of the Language
7(30)
2.1 Data Types
7(4)
2.1.1 Strings
9(2)
2.2 Statements and Expressions
11(1)
2.3 Statement Separator and Blocks
11(1)
2.4 Comments
12(1)
2.5 Declarations
12(1)
2.5.1 Composite Types: Cartesian Products
13(1)
2.5.2 Nested Declarations
13(1)
2.6 Functions
13(9)
2.6.1 Alternative Ways to Define Types in Functions
15(1)
2.6.2 Type Inference in Scala
15(1)
2.6.3 Signature
16(1)
2.6.4 Referentially Transparent
17(1)
2.6.5 Higher-Order Functions
18(1)
2.6.6 Currification
19(1)
2.6.7 Recursive Functions
20(2)
2.6.8 Functions and Non Functional Programming
22(1)
2.7 Lists
22(4)
2.7.1 Recursion on Lists
24(2)
2.8 Pattern Matching
26(3)
2.8.1 Pattern Matching on Lists
27(2)
2.9 Collections and Their Higher Order Functions
29(7)
2.9.1 Mutable and Immutable Data Structures
29(1)
2.9.2 Mutable and Immutable Collections
30(1)
2.9.3 Some Imperative Construction on Collections
31(1)
2.9.4 Higher-Order Functions for Collections
32(4)
2.10 List Comprehension
36(1)
3 Lazy and Eager Evaluation
37(14)
3.1 Parameter Passing
39(1)
3.2 Lazy Val
40(1)
3.3 Streams and Other Infinite Data Structures
41(3)
3.4 Stream of Even Numbers
44(1)
3.5 Stream of Odd Numbers
45(1)
3.6 The Fibonacci Numbers
46(1)
3.7 The Prime Numbers
46(1)
3.8 Exercises with Streams
47(4)
4 Object-Oriented Programming in Scala
51(18)
4.1 Class Hierarchy
53(1)
4.2 Definition of a Class
54(4)
4.2.1 Notation
57(1)
4.3 Value Classes
58(1)
4.4 Case Classes
59(1)
4.5 Abstract Classes
59(1)
4.6 Singleton Objects
60(1)
4.7 Companion Objects
61(2)
4.8 Traits
63(3)
4.8.1 Inheritance
63(1)
4.8.2 Multiple Inheritance
64(1)
4.8.3 Name Clashes in Traits
65(1)
4.9 Packages
66(1)
4.10 Some Additional Issues
67(2)
5 Types and Classes Revisited: Polymorphism
69(8)
5.1 Classes with Polymorphic Types
70(2)
5.2 Monoids, Functors, and Monads
72(5)
5.2.1 Monoids
73(1)
5.2.2 Functors
73(1)
5.2.3 Monads
74(3)
6 Scala: OOL and FP
77(10)
6.1 Tail-Recursive Functions
77(4)
6.1.1 Some Scala Technicalities
79(1)
6.1.2 Additional Examples of Tail-Recursive Functions
80(1)
6.2 Functions in Scala and Object-Oriented Programming
81(2)
6.3 Defining Functions Revisited: val and def
83(1)
6.4 Data Types and Efficiency
84(3)
7 Algebraic Data Types
87(6)
7.1 Definition of Algebraic Data Types in Standard ML
87(3)
7.2 Algebraic Data Types in Scala
90(2)
7.3 Data Types and Efficiency Revisited
92(1)
8 Parallelism
93(18)
8.1 Collections
94(3)
8.2 Actors
97(14)
8.2.1 Definition
98(5)
8.2.2 Receive and React, ! and !?
103(2)
8.2.3 Futures and !!
105(2)
8.2.4 Others
107(1)
8.2.5 Akka's Actor Model
107(4)
9 Solutions
111(10)
References
119(2)
Index 121
Lecturer of a course on advanced programming and for master students in the University of Skövde