舉報(bào)

會(huì)員
Professional Scala
Mads Hartmann Ruslan Shevchenko 著
更新時(shí)間:2021-07-23 17:24:55
開會(huì)員,本書免費(fèi)讀 >
最新章節(jié):
V
ThisbookteachesyouhowtobuildandcontributetoScalaprograms,recognizingcommonpatternsandtechniquesusedwiththelanguage.You’lllearnhowtowriteconcise,functionalcodewithScala.Afteranintroductiontocoreconcepts,syntax,andwritingexampleapplicationswithscalac,you’lllearnabouttheScalaCollectionsAPIandhowthelanguagehandlestypesafetyviastatictypesout-of-the-box.You’llthenlearnaboutadvancedfunctionalprogrammingpatterns,andhowyoucanwriteyourownDomainSpecificLanguages(DSLs).Bytheendofthebook,you’llbeequippedwiththeskillsyouneedtosuccessfullybuildsmart,efficientapplicationsinScalathatcanbecompiledtotheJVM.
最新章節(jié)
書友吧品牌:中圖公司
上架時(shí)間:2021-07-23 15:51:02
出版社:Packt Publishing
本書數(shù)字版權(quán)由中圖公司提供,并由其授權(quán)上海閱文信息技術(shù)有限公司制作發(fā)行
- V 更新時(shí)間:2021-07-23 17:24:55
- U
- T
- S
- R
- Q
- P
- O
- N
- M
- L
- I
- H
- F
- E
- D
- C
- B
- A
- Index
- Summary
- Resources to Keep You Updated
- Uncovered Language Features
- Various Scala Libraries
- Beyond This Book
- Activity: Creating a DSL to Specify Assertions
- DSL for TestCase
- Modeling Test Cases
- Writing a Small DSL
- Extension Methods and Value Classes
- By-Name Parameters
- Flexible Syntax for Method Invocation
- Language Features for Writing DSLs
- Activity: Implementing ScalaTest Styles
- Overview of ScalaTest Styles
- Adding ScalaTest to Your Project
- ScalaTest – A Popular DSL
- Internal DSLs
- External DSLs
- DSLs and Types of DSLs
- Chapter 8. Domain Specific Languages
- Summary
- Activity: Adding Priority to the Todo List
- Doobie
- Communicating with Databases Using Doobie
- Validating Using Validated
- Validating Data
- Introduction to Cats
- Prerequisites for Using Cats
- Validating Data Using Cats
- Popular Libraries
- Monads
- Functor
- Monoids
- Functional Design Patterns
- Higher-Order Functions
- Immutability
- Pure Functions
- Introduction to Functional Programming Concepts
- Chapter 7. Functional Idioms
- Summary
- Type Classes in the Standard Library
- Context Bounds and Implicitly
- Type Classes
- Types of Polymorphism
- Ad Hoc Polymorphism and Type Classes
- Activity: Creation of Extension Methods
- Implicit Resolution
- Implicit Conversions
- Implicit Parameters
- Implicit Parameters and Implicit Conversions
- Chapter 6. Implicits
- Summary
- Activity: Finding an Element Based on a Given Predicate
- Type Erasure
- Higher Kind Types
- Option
- Structural Types
- Abstract Type Members
- Advanced Types
- Activity: Implementing Covariance and the Database for Tools
- Invariance
- Contravariance
- Covariance
- Variance
- Activity: Generalizing the Implementation of the Binary Tree
- Existential Types
- Bounds
- Parameterized Types
- Type Inference
- Parametric Polymorphism
- A Unified Type System
- Type Basics and Polymorphism
- Chapter 5. Scala Type System
- Summary
- Activity: Implementing the Tower of Hanoi Problem
- Mutable and Immutable Collections
- Maps
- Tuples
- Sets
- Other Collections
- Activity: Implementing Fibonacci Series Using Streams and Iterators
- Streams
- Iterators
- The Traversable Trait
- Abstracting on Sequences
- Activity: Creating a New Mode for Chatbot Using Lists
- Display
- Element Selection
- Prefixes and Suffixes
- Reversing a List
- Taking the Length of a List
- Appending and Concatenation
- First-Order Methods on List
- Pattern Matching on Lists
- Operations on Lists
- Constructing Lists
- Working with Lists
- Chapter 4. Scala Collections
- Summary
- Using Lifting for Conversations between Total and Partial Functions
- Implementing RemindStore as a Set of Partial Functions
- Representing ChatbotMode as a Partial Function
- Partial Functions in Practice
- Binding a Sequence of Variables in the Pattern Matcher
- Exploring Pattern Matching
- Partial Functions
- Syntax Sugar in a Function Definition
- Defining and Measuring the Time of a Unit Function
- Conversions
- Function from an OO Point of View
- Function Values
- Functions
- Chapter 3. Functions
- Summary
- Printing the log Argument to the Console and File
- Creating a Runnable Construction
- By Need
- By Name
- By Value
- Parameter-Passing Mode
- Implementing + in CartesianPoint
- Syntax Goodies
- Function Calls
- Sealed Traits and Algebraic Datatypes
- Decoupling Logic and Environment
- OO in Our Chatbot
- Special Classes
- Self-Types
- Traits
- Pattern Matching
- Equality and Case Classes
- Classes
- Object
- Objects Classes and Traits
- Chapter 2. Basic Language Features
- Summary
- Running Tests for Chatbot
- Inside Tests
- Adding a Test to Our Project
- Unit Testing
- Base Syntax for Expressions
- Base Syntax for Definitions
- Base Syntax
- Obtaining the Time Request from Our Chatbot Program
- REPL
- Activity: Loading and Running a Sample Project in the IDE
- IDE
- Activity: Performing Basic Operations with sbt: Build Run Package
- Basic sbt Commands
- Structure of a Scala Project
- Inside main
- Definitions: Packages Imports and Objects
- Simple Program
- Chapter 1. Setting up the Development Environment
- Questions
- Piracy
- Errata
- Downloading the Example Code
- Customer Support
- Reader Feedback
- Installing Scala plugin (make heading)
- Installing IntelliJ IDE
- Installation and Setup
- Conventions
- What You Need for This Book
- What This Book Covers
- Who This Book Is For
- Preface
- About the Authors
- Contributors
- PacktPub.com
- Why Subscribe?
- Professional Scala
- 封面
- 封面
- Professional Scala
- Why Subscribe?
- PacktPub.com
- Contributors
- About the Authors
- Preface
- Who This Book Is For
- What This Book Covers
- What You Need for This Book
- Conventions
- Installation and Setup
- Installing IntelliJ IDE
- Installing Scala plugin (make heading)
- Reader Feedback
- Customer Support
- Downloading the Example Code
- Errata
- Piracy
- Questions
- Chapter 1. Setting up the Development Environment
- Simple Program
- Definitions: Packages Imports and Objects
- Inside main
- Structure of a Scala Project
- Basic sbt Commands
- Activity: Performing Basic Operations with sbt: Build Run Package
- IDE
- Activity: Loading and Running a Sample Project in the IDE
- REPL
- Obtaining the Time Request from Our Chatbot Program
- Base Syntax
- Base Syntax for Definitions
- Base Syntax for Expressions
- Unit Testing
- Adding a Test to Our Project
- Inside Tests
- Running Tests for Chatbot
- Summary
- Chapter 2. Basic Language Features
- Objects Classes and Traits
- Object
- Classes
- Equality and Case Classes
- Pattern Matching
- Traits
- Self-Types
- Special Classes
- OO in Our Chatbot
- Decoupling Logic and Environment
- Sealed Traits and Algebraic Datatypes
- Function Calls
- Syntax Goodies
- Implementing + in CartesianPoint
- Parameter-Passing Mode
- By Value
- By Name
- By Need
- Creating a Runnable Construction
- Printing the log Argument to the Console and File
- Summary
- Chapter 3. Functions
- Functions
- Function Values
- Function from an OO Point of View
- Conversions
- Defining and Measuring the Time of a Unit Function
- Syntax Sugar in a Function Definition
- Partial Functions
- Exploring Pattern Matching
- Binding a Sequence of Variables in the Pattern Matcher
- Partial Functions in Practice
- Representing ChatbotMode as a Partial Function
- Implementing RemindStore as a Set of Partial Functions
- Using Lifting for Conversations between Total and Partial Functions
- Summary
- Chapter 4. Scala Collections
- Working with Lists
- Constructing Lists
- Operations on Lists
- Pattern Matching on Lists
- First-Order Methods on List
- Appending and Concatenation
- Taking the Length of a List
- Reversing a List
- Prefixes and Suffixes
- Element Selection
- Display
- Activity: Creating a New Mode for Chatbot Using Lists
- Abstracting on Sequences
- The Traversable Trait
- Iterators
- Streams
- Activity: Implementing Fibonacci Series Using Streams and Iterators
- Other Collections
- Sets
- Tuples
- Maps
- Mutable and Immutable Collections
- Activity: Implementing the Tower of Hanoi Problem
- Summary
- Chapter 5. Scala Type System
- Type Basics and Polymorphism
- A Unified Type System
- Parametric Polymorphism
- Type Inference
- Parameterized Types
- Bounds
- Existential Types
- Activity: Generalizing the Implementation of the Binary Tree
- Variance
- Covariance
- Contravariance
- Invariance
- Activity: Implementing Covariance and the Database for Tools
- Advanced Types
- Abstract Type Members
- Structural Types
- Option
- Higher Kind Types
- Type Erasure
- Activity: Finding an Element Based on a Given Predicate
- Summary
- Chapter 6. Implicits
- Implicit Parameters and Implicit Conversions
- Implicit Parameters
- Implicit Conversions
- Implicit Resolution
- Activity: Creation of Extension Methods
- Ad Hoc Polymorphism and Type Classes
- Types of Polymorphism
- Type Classes
- Context Bounds and Implicitly
- Type Classes in the Standard Library
- Summary
- Chapter 7. Functional Idioms
- Introduction to Functional Programming Concepts
- Pure Functions
- Immutability
- Higher-Order Functions
- Functional Design Patterns
- Monoids
- Functor
- Monads
- Popular Libraries
- Validating Data Using Cats
- Prerequisites for Using Cats
- Introduction to Cats
- Validating Data
- Validating Using Validated
- Communicating with Databases Using Doobie
- Doobie
- Activity: Adding Priority to the Todo List
- Summary
- Chapter 8. Domain Specific Languages
- DSLs and Types of DSLs
- External DSLs
- Internal DSLs
- ScalaTest – A Popular DSL
- Adding ScalaTest to Your Project
- Overview of ScalaTest Styles
- Activity: Implementing ScalaTest Styles
- Language Features for Writing DSLs
- Flexible Syntax for Method Invocation
- By-Name Parameters
- Extension Methods and Value Classes
- Writing a Small DSL
- Modeling Test Cases
- DSL for TestCase
- Activity: Creating a DSL to Specify Assertions
- Beyond This Book
- Various Scala Libraries
- Uncovered Language Features
- Resources to Keep You Updated
- Summary
- Index
- A
- B
- C
- D
- E
- F
- H
- I
- L
- M
- N
- O
- P
- Q
- R
- S
- T
- U
- V 更新時(shí)間:2021-07-23 17:24:55