舉報

會員
Functional Kotlin
Functionalprogrammingmakesyourapplicationfaster,improvesperformance,andincreasesyourproductivity.Kotlinsupportsmanyofthepopularandadvancedfunctionalfeaturesoffunctionallanguages.ThisbookwillcovertheA-ZoffunctionalprogramminginKotlin.ThisbookbridgesthelanguagegapforKotlindevelopersbyshowingyouhowtocreateandconsumefunctionalconstructsinKotlin.Wealsobridgethedomaingapbyshowinghowfunctionalconstructscanbeappliedinbusinessscenarios.We’lltakeyouthroughlambdas,patternmatching,immutability,andhelpyoudevelopadeepunderstandingoftheconceptsandpracticesoffunctionalprogramming.IfyouwantlearntoaddressproblemsusingRecursion,Koltinhassupportforitaswell.You’llalsolearnhowtousethefunKtionalelibrarytoperformcurryingandlazyprogrammingandmore.Finally,you’lllearnfunctionaldesignpatternsandtechniquesthatwillmakeyouabetterprogrammer.Bytheendofthebook,youwillbemoreconfidentinyourfunctionalprogrammingskillsandwillbeabletoapplythemwhileprogramminginKotlin.
目錄(256章)
倒序
- coverpage
- Title Page
- Dedication
- Packt Upsell
- Why subscribe?
- PacktPub.com
- Contributors
- About the authors
- About the reviewer
- Packt is searching for authors like you
- Preface
- Who this book is for
- What this book covers
- To get the most out of this book
- Download the example code files
- Download the color images
- Conventions used
- Get in touch
- Reviews
- Kotlin – Data Types Objects and Classes
- Classes
- Properties
- Methods
- Inheritance
- Abstract classes
- Interfaces
- Objects
- Object declarations
- Companion objects
- Generics
- Type alias
- Nullable types
- Checking for null
- Checking for non-null types
- Safe calls
- The Elvis (?:) operator
- The (!!) operator
- Kotlin's type system
- The Any type
- Minimum common types
- The Unit type
- The Nothing type
- Other types
- Data classes
- Canonical methods
- The copy() method
- Destructuring methods
- Annotations
- Enum
- Summary
- Getting Started with Functional Programming
- What is functional programming?
- Basics concepts
- First-class and higher-order functions
- Pure functions
- Recursive functions
- Lazy evaluation
- Functional collections
- Implementing a functional list
- Summary
- Immutability - It's Important
- What is immutability?
- Implementing immutability in Kotlin
- The difference between var and val
- Compile time constants
- Types of immutability
- Immutable reference (referential immutability)
- Immutable values
- Immutable collections
- The advantages of immutability
- Thread safety
- Low coupling
- Referential transparency
- Failure atomicity
- Caching
- Compiler optimization
- Pure functions
- The disadvantages of immutability
- Summary
- Functions Function Types and Side Effects
- Functions in Kotlin
- Returning two values from a function
- Extension functions
- Default arguments
- Nested functions
- Function types in functional programming
- Lambda
- Function as property
- High order functions
- Pure functions and side effects
- Side effects
- Pure functions
- Summary
- More on Functions
- Single-expression functions
- Parameters
- vararg
- Lambda
- Named parameters
- Named parameters on high-order functions
- Default parameters
- Extension functions
- Extension functions and inheritance
- Extension functions as members
- Extension functions with conflicting names
- Extension functions for objects
- Infix functions
- Operator overloading
- Binary operators
- Invoke
- Indexed access
- Unary operators
- Type-safe builders
- Creating a DSL
- Inline functions
- Inline restrictions
- Recursion and corecursion
- Summary
- Delegates in Kotlin
- Introduction to delegation
- Understanding delegation
- Delegates in Kotlin
- Property delegation (standard delegates)
- The Delegates.notNull function and lateinit
- The lazy function
- Observing property value change with Delegates.Observable
- The power of veto – Delegates.vetoable
- Delegated map
- Custom delegation
- Local delegates
- Class delegation
- Summary
- Asynchronous Programming with Coroutines
- Introduction to coroutines
- Understanding JVM threads
- Hello coroutine world!
- Using coroutines in real life
- Synchronous implementation
- Callbacks
- Java Futures
- Promises with Kovenant
- Coroutines
- Coroutine context
- Channels
- Channel pipelines
- Managing mutable state
- Switching contexts
- Thread safe structures
- Mutexes
- Actors
- Summary
- Collections and Data Operations in Kotlin
- An introduction to collections
- The advantages of a collections framework
- List and MutableList
- Set and MutableSet
- Map and MutableMap
- Data operations in a collection
- The map function
- The filter function
- The flatMap function
- The drop functions
- The take functions
- The zip function
- Grouping collections
- Summary
- Functional Programming and Reactive Programming
- Combining FP with OOP
- Functional reactive programming
- The Reactive Manifesto
- Functional reactive frameworks for Kotlin
- Getting started with RxKotlin
- Downloading and setting up RxKotlin
- Comparing the Pull mechanism with the RxJava Push mechanism
- Observables
- How Observable works
- The Observable.create method
- The Observable.from methods
- Iterator<T>.toObservable
- Subscriber – the Observer interface
- Subscribing and disposing
- Summary
- Functors Applicatives and Monads
- Functors
- Monads
- Applicatives
- Summary
- Working with Streams in Kotlin
- Introduction to Streams
- Collections versus Streams
- Working with Streams
- Primitive streams
- Stream factory methods
- Stream Builder
- Creating empty Streams – Stream.empty()
- Creating a Stream by passing elements – Stream.of()
- Generating Streams – Stream.generate()
- Collector and Stream.collect – collecting Streams
- The Collectors.toList() Collectors.toSet() and Collectors.toCollection() methods
- Collecting into Map – Collectors.toMap()
- Joining Stream of strings – Collectors.joining()
- Grouping elements of Stream – Collectors.groupingBy()
- Summary
- Getting Started with Arrow
- Function composition
- Partial application
- Binding
- Reverse
- Pipes
- Currying
- Differences between the currying and partial application
- Logical complement
- Memoization
- Partial functions
- Identity and constant
- Optics
- Configuring Arrows code generation
- Generating lenses
- Summary
- Arrow Types
- Option
- Arrow's type hierarchy
- Either
- Monad transformers
- Try
- State
- Corecursion with State
- Summary
- Kotlin's Quick Start
- Writing and running Kotlin
- Kotlin online
- On your console
- Installing SDKMAN
- Installing Kotlin through SDKMAN
- Kotlin's REPL
- Compiling and executing Kotlin files
- Using Gradle
- Creating a distributable Gradle command
- Creating a Gradle project file
- Creating our Hello World code
- Using IntelliJ IDEA or Android Studio
- Importing Gradle files with IntelliJ IDEA
- Basic Kotlin syntax
- General features
- Packages
- String concatenation and interpolation
- Comments
- Control structures
- if expression
- when expression
- for loop
- while and do loops
- Going further
- Other Books You May Enjoy
- Leave a review - let other readers know what you think 更新時間:2021-06-24 19:15:59
推薦閱讀
- DevOps for Networking
- CentOS 7 Linux Server Cookbook(Second Edition)
- Building Mobile Applications Using Kendo UI Mobile and ASP.NET Web API
- 軟件工程
- PhoneGap:Beginner's Guide(Third Edition)
- SQL Server與JSP動態網站開發
- FPGA Verilog開發實戰指南:基于Intel Cyclone IV(進階篇)
- Learning Continuous Integration with TeamCity
- Android移動開發案例教程:基于Android Studio開發環境
- Hands-On Nuxt.js Web Development
- Natural Language Processing with Python Quick Start Guide
- ASP.NET Web API Security Essentials
- OpenCV Android開發實戰
- Visual Basic 程序設計實踐教程
- Java程序設計
- Python面向對象編程(第4版)
- R語言編程基礎
- Visual Basic.NET程序設計
- Learning SaltStack(Second Edition)
- 亮劍C#項目開發案例導航
- OpenStack Networking Cookbook
- Twitter Bootstrap Web Development How-to
- 零基礎Linux從入門到精通
- Apache Cassandra Essentials
- Mastering jQuery UI
- 零基礎學Visual C++(第4版)
- Java程序設計教程(第2版)
- Flash動畫制作
- Intel Galileo Networking Cookbook
- C語言程序設計教程