最新章節
- Summary
- DetailsViewController
- TableView delegates and DataSource
- IBActions
- MasterViewController
- ViewControllers
品牌:中圖公司
上架時間:2021-07-02 18:57:03
出版社:Packt Publishing
本書數字版權由中圖公司提供,并由其授權上海閱文信息技術有限公司制作發行
- Summary 更新時間:2021-07-02 23:55:18
- DetailsViewController
- TableView delegates and DataSource
- IBActions
- MasterViewController
- ViewControllers
- Views
- Actions
- Store
- States
- Lenses
- Listing Todo items
- Creating a Todo item
- WebServiceManager
- Conforming to the request protocol
- The request protocol
- Communication
- viewModel
- Using Argo models
- <|| operator
- <|? operator
- <| operator
- <*> operator
- <^> operator
- Operators
- Models
- Configuration
- iOS application development
- Updating a Todo item
- Deleting an item and deleting all Todo items
- Getting a specific Todo item
- Getting a list of Todo items
- Posting a new Todo item
- Controller
- Store
- Model
- Backend development
- SPM
- Request data
- JSON
- Routing
- Vapor
- Backend
- Tools
- Error management and exception handling
- Cross-cutting concerns
- Third-party libraries/frameworks
- Communication between layers
- Communication
- Manager
- Actions
- Store
- State
- ViewController
- Views
- Models
- Frontend
- High-level design
- Requirements
- Case Study - Developing an iOS Application with FP and OOP Paradigms
- Summary
- Visitor pattern
- Virtual proxy pattern
- Observer pattern
- Command pattern
- Strategy pattern
- OOP design patterns - a FP perspective
- Name abstraction at a function/method level
- Reduction of the number of object/class definitions
- Architectural effects
- Function partial applications and currying
- Operation compositions and sequence comprehensions
- Generic iterator operations
- Code abstraction at a function/method level
- Idiomatic effects
- Effects of having FP capabilities in OOP
- FP support
- FP-OOP interrelation tools
- Closures
- First-class values
- FP paradigm availability
- Granularity mismatch
- Problems
- Mixing OOP and FP
- An example
- Schedulers
- Disposables
- Properties
- Actions
- Lifetimes
- Observers
- Signal producers
- Pipes
- Signals
- Events
- Building blocks of FRP
- Functional reactive programming
- Conforming to a protocol
- Associated types
- Protocol inheritance
- Protocol extensions
- Protocol composition
- POP paradigms
- POP
- Declarative design
- Closure of operations
- Conceptual contours
- Assertions
- Side-effect-free functions
- Intention-revealing interface
- Domain events
- Immutable value objects
- Aggregate
- Building blocks
- Premise
- Concepts
- DDD
- The FP counterpart
- DIP
- The FP counterpart
- ISP
- The FP counterpart
- LSP
- The FP counterpart
- OCP
- The FP counterpart
- SRP
- OOP design principles
- Dynamic binding
- Polymorphism
- When to inherit
- Issues and alternatives
- Composite reuse
- Visibility
- Static
- Singleness
- Design constraints
- Overriding
- Inheritance
- Classes
- Objects
- OOP paradigms
- Best of Both Worlds and Combining FP Paradigms with OOP
- Summary
- Lens composition
- Lenses
- Copy constructors
- Copy constructors and lenses
- Testability
- Side-effects and unintended consequences
- An example
- Cases for mutability
- Compiler optimization
- State comparison
- Caching
- Exception handling and error management
- Parallelization
- Failure atomicity
- Avoiding identity mutability
- Avoiding temporal coupling
- Low coupling
- Referential transparency
- Thread safety
- Benefits of immutability
- Reference types versus value types
- Weak versus strong immutability
- Immutable variables
- Immutability
- Importance of Immutability
- Summary
- Lazy lists
- Stacks
- map filter and reduce
- isEmpty
- Elements
- Size
- Contains
- Cons
- Empty LinkedList
- Lists
- Empty
- Elements
- Size
- The contains method
- Binary Search Trees
- The contains method
- Trees
- Monoids
- Semigroups
- Functional Data Structures
- Summary
- try?
- try!
- Error handling
- Multiple optional value mapping
- Optional mapping
- Dealing with Optionals' functionally
- Optional chaining
- Nil-coalescing
- Implicitly-unwrapped optionals
- Guard
- Optional binding
- nil checking
- Force unwrapping
- Unwrapping optionals
- Optional types
- Dealing with Optionals
- Summary
- Partitioning an array
- Removing duplicates in an array
- Removing nil values from an array
- Sum and product of an array
- Practical examples
- The zip function
- Chaining higher-order functions
- The join function
- The apply function
- The flatten function in terms of reduce
- The flatMap function in terms of reduce
- The filter function in terms of reduce
- The map function in terms of reduce
- The reduce function
- The filter function
- The flatMap method
- The map function
- Monads
- Applicative Functors
- Functors
- Higher-kinded types
- Map Filter and Reduce
- Summary
- Generics manifesto
- Subclassing Generic classes
- Extending Generic types
- Type erasure
- Associated type protocols
- Generic data structures
- The where clauses
- Type constraints
- What are Generics and what kind of problems do they solve?
- Generics and Associated Type Protocols
- Summary
- The expression pattern
- Type casting patterns
- The optional pattern
- The enumeration case pattern
- The tuple pattern
- The identifier pattern
- The value-binding pattern
- The wildcard pattern
- Patterns and pattern matching
- Pattern matching
- The algebra of data types
- Composite types with variants
- Composite types
- Simple types
- Algebraic data types
- Nesting and containing enumerations
- Raw values
- Associated values
- Defining enumerations
- Enumerations and Pattern Matching
- Summary
- Type checking and casting
- Equatable and Comparable
- Equality versus identity
- Using value and reference types
- Threats
- Testability
- Interchangeability
- Isolation
- Behaviour
- Value type characteristics
- Copying reference types
- Copying
- Mixing value and reference types
- Value and reference type constants
- Value versus reference types
- Kinds of types
- Types and Type Casting
- Summary
- Memoization
- Tail recursion
- Recursion
- Function currying
- Capturing values
- Closure syntax
- Closures
- A composed function with custom operator
- Custom operator definition
- Allowed operators
- Custom operators
- Function composition
- Higher-order functions
- First-class functions
- Function types
- Pure functions
- Defining and using nested functions
- Returning values from functions
- Defining and using variadic functions
- Defining and using function parameters
- Calling functions
- Best practices in function definition
- Syntax
- What is a function?
- Functions and Closures
- Summary
- Error handling
- Access control
- Protocol extensions
- Extensions
- Protocols as types
- Protocols
- Nested types
- Any and AnyObject
- Automatic Reference Counting
- De-initialization
- Initialization
- Inheritance
- Subscripts
- Methods
- Property observers
- Properties
- Identity operators
- Choosing between classes and structures
- Classes versus structures
- Classes and structures
- Generics
- Enumerations
- The reduce function
- The filter function
- The map function
- The map filter and reduce functions
- Closures
- Functions
- Guard
- Switch
- if
- The stride functions
- while loops
- for loops
- Control flows
- Collections
- String comparison
- String interpolation
- Concatenating strings and characters
- Empty Strings
- String literals
- Immutability
- Strings and characters
- Basic operators
- Optionals
- Tuples
- Immutability
- Type casting
- Type aliases
- Type annotation
- Type inference
- Types
- Language basics
- REPL and Playground
- Automatic Reference Counting
- Objective-C and Swift bridging headers
- Extensions
- Optional chaining
- Generics
- Pattern matching
- Subscripts
- Closures
- Higher-order functions
- First-class functions
- Stateless programming
- Immutability
- Type safety and type inference
- Modern syntax
- Swift features
- The Swift programming language
- What is FP?
- Why functional programming matters
- Getting Started with Functional Programming in Swift
- Questions
- Piracy
- Errata
- Downloading the color images of this book
- Downloading the example code
- Customer support
- Reader feedback
- Conventions
- Who this book is for
- What you need for this book
- What this book covers
- Preface
- Dedication
- Customer Feedback
- www.PacktPub.com
- About the Reviewer
- About the Author
- Credits
- 版權信息
- 封面
- 封面
- 版權信息
- Credits
- About the Author
- About the Reviewer
- www.PacktPub.com
- Customer Feedback
- Dedication
- Preface
- What this book covers
- What you need for this book
- Who this book is for
- Conventions
- Reader feedback
- Customer support
- Downloading the example code
- Downloading the color images of this book
- Errata
- Piracy
- Questions
- Getting Started with Functional Programming in Swift
- Why functional programming matters
- What is FP?
- The Swift programming language
- Swift features
- Modern syntax
- Type safety and type inference
- Immutability
- Stateless programming
- First-class functions
- Higher-order functions
- Closures
- Subscripts
- Pattern matching
- Generics
- Optional chaining
- Extensions
- Objective-C and Swift bridging headers
- Automatic Reference Counting
- REPL and Playground
- Language basics
- Types
- Type inference
- Type annotation
- Type aliases
- Type casting
- Immutability
- Tuples
- Optionals
- Basic operators
- Strings and characters
- Immutability
- String literals
- Empty Strings
- Concatenating strings and characters
- String interpolation
- String comparison
- Collections
- Control flows
- for loops
- while loops
- The stride functions
- if
- Switch
- Guard
- Functions
- Closures
- The map filter and reduce functions
- The map function
- The filter function
- The reduce function
- Enumerations
- Generics
- Classes and structures
- Classes versus structures
- Choosing between classes and structures
- Identity operators
- Properties
- Property observers
- Methods
- Subscripts
- Inheritance
- Initialization
- De-initialization
- Automatic Reference Counting
- Any and AnyObject
- Nested types
- Protocols
- Protocols as types
- Extensions
- Protocol extensions
- Access control
- Error handling
- Summary
- Functions and Closures
- What is a function?
- Syntax
- Best practices in function definition
- Calling functions
- Defining and using function parameters
- Defining and using variadic functions
- Returning values from functions
- Defining and using nested functions
- Pure functions
- Function types
- First-class functions
- Higher-order functions
- Function composition
- Custom operators
- Allowed operators
- Custom operator definition
- A composed function with custom operator
- Closures
- Closure syntax
- Capturing values
- Function currying
- Recursion
- Tail recursion
- Memoization
- Summary
- Types and Type Casting
- Kinds of types
- Value versus reference types
- Value and reference type constants
- Mixing value and reference types
- Copying
- Copying reference types
- Value type characteristics
- Behaviour
- Isolation
- Interchangeability
- Testability
- Threats
- Using value and reference types
- Equality versus identity
- Equatable and Comparable
- Type checking and casting
- Summary
- Enumerations and Pattern Matching
- Defining enumerations
- Associated values
- Raw values
- Nesting and containing enumerations
- Algebraic data types
- Simple types
- Composite types
- Composite types with variants
- The algebra of data types
- Pattern matching
- Patterns and pattern matching
- The wildcard pattern
- The value-binding pattern
- The identifier pattern
- The tuple pattern
- The enumeration case pattern
- The optional pattern
- Type casting patterns
- The expression pattern
- Summary
- Generics and Associated Type Protocols
- What are Generics and what kind of problems do they solve?
- Type constraints
- The where clauses
- Generic data structures
- Associated type protocols
- Type erasure
- Extending Generic types
- Subclassing Generic classes
- Generics manifesto
- Summary
- Map Filter and Reduce
- Higher-kinded types
- Functors
- Applicative Functors
- Monads
- The map function
- The flatMap method
- The filter function
- The reduce function
- The map function in terms of reduce
- The filter function in terms of reduce
- The flatMap function in terms of reduce
- The flatten function in terms of reduce
- The apply function
- The join function
- Chaining higher-order functions
- The zip function
- Practical examples
- Sum and product of an array
- Removing nil values from an array
- Removing duplicates in an array
- Partitioning an array
- Summary
- Dealing with Optionals
- Optional types
- Unwrapping optionals
- Force unwrapping
- nil checking
- Optional binding
- Guard
- Implicitly-unwrapped optionals
- Nil-coalescing
- Optional chaining
- Dealing with Optionals' functionally
- Optional mapping
- Multiple optional value mapping
- Error handling
- try!
- try?
- Summary
- Functional Data Structures
- Semigroups
- Monoids
- Trees
- The contains method
- Binary Search Trees
- The contains method
- Size
- Elements
- Empty
- Lists
- Empty LinkedList
- Cons
- Contains
- Size
- Elements
- isEmpty
- map filter and reduce
- Stacks
- Lazy lists
- Summary
- Importance of Immutability
- Immutability
- Immutable variables
- Weak versus strong immutability
- Reference types versus value types
- Benefits of immutability
- Thread safety
- Referential transparency
- Low coupling
- Avoiding temporal coupling
- Avoiding identity mutability
- Failure atomicity
- Parallelization
- Exception handling and error management
- Caching
- State comparison
- Compiler optimization
- Cases for mutability
- An example
- Side-effects and unintended consequences
- Testability
- Copy constructors and lenses
- Copy constructors
- Lenses
- Lens composition
- Summary
- Best of Both Worlds and Combining FP Paradigms with OOP
- OOP paradigms
- Objects
- Classes
- Inheritance
- Overriding
- Design constraints
- Singleness
- Static
- Visibility
- Composite reuse
- Issues and alternatives
- When to inherit
- Polymorphism
- Dynamic binding
- OOP design principles
- SRP
- The FP counterpart
- OCP
- The FP counterpart
- LSP
- The FP counterpart
- ISP
- The FP counterpart
- DIP
- The FP counterpart
- DDD
- Concepts
- Premise
- Building blocks
- Aggregate
- Immutable value objects
- Domain events
- Intention-revealing interface
- Side-effect-free functions
- Assertions
- Conceptual contours
- Closure of operations
- Declarative design
- POP
- POP paradigms
- Protocol composition
- Protocol extensions
- Protocol inheritance
- Associated types
- Conforming to a protocol
- Functional reactive programming
- Building blocks of FRP
- Events
- Signals
- Pipes
- Signal producers
- Observers
- Lifetimes
- Actions
- Properties
- Disposables
- Schedulers
- An example
- Mixing OOP and FP
- Problems
- Granularity mismatch
- FP paradigm availability
- First-class values
- Closures
- FP-OOP interrelation tools
- FP support
- Effects of having FP capabilities in OOP
- Idiomatic effects
- Code abstraction at a function/method level
- Generic iterator operations
- Operation compositions and sequence comprehensions
- Function partial applications and currying
- Architectural effects
- Reduction of the number of object/class definitions
- Name abstraction at a function/method level
- OOP design patterns - a FP perspective
- Strategy pattern
- Command pattern
- Observer pattern
- Virtual proxy pattern
- Visitor pattern
- Summary
- Case Study - Developing an iOS Application with FP and OOP Paradigms
- Requirements
- High-level design
- Frontend
- Models
- Views
- ViewController
- State
- Store
- Actions
- Manager
- Communication
- Communication between layers
- Third-party libraries/frameworks
- Cross-cutting concerns
- Error management and exception handling
- Tools
- Backend
- Vapor
- Routing
- JSON
- Request data
- SPM
- Backend development
- Model
- Store
- Controller
- Posting a new Todo item
- Getting a list of Todo items
- Getting a specific Todo item
- Deleting an item and deleting all Todo items
- Updating a Todo item
- iOS application development
- Configuration
- Models
- Operators
- <^> operator
- <*> operator
- <| operator
- <|? operator
- <|| operator
- Using Argo models
- viewModel
- Communication
- The request protocol
- Conforming to the request protocol
- WebServiceManager
- Creating a Todo item
- Listing Todo items
- Lenses
- States
- Store
- Actions
- Views
- ViewControllers
- MasterViewController
- IBActions
- TableView delegates and DataSource
- DetailsViewController
- Summary 更新時間:2021-07-02 23:55:18