This repository is the home of code written on episodes of Point-Free. Want to ask a question that we or the community might be able to answer? Start a discussion!
- Functions
- Side-Effects
- UIKit Styling with Functions
- Algebraic Data Types
- Higher-Order Functions
- Functional Setters
- Setters and Key Paths
- Getters and Key Paths
- Algebraic Data Types: Exponents
- A Tale of Two Flat-Maps
- Composition without Operators
- Tagged
- The Many Faces of Map
- Contravariance
- Setters: Ergonomics & Performance
- Dependency Injection Made Easy
- Styling with Overture
- Dependency Injection Made Comfortable
- Algebraic Data Types: Generics and Recursion
- NonEmpty
- Playground Driven Development
- A Tour of Point-Free
- The Many Faces of Zip: Part 1
- The Many Faces of Zip: Part 2
- The Many Faces of Zip: Part 3
- Domain Specific Languages: Part 1
- Domain Specific Languages: Part 2
- An HTML DSL
- DSLs vs. Templating Languages
- Composable Randomness
- Decodable Randomness: Part 1
- Decodable Randomness: Part 2
- Protocol Witnesses: Part 1
- Protocol Witnesses: Part 2
- Advanced Protocol Witnesses: Part 1
- Advanced Protocol Witnesses: Part 2
- Protocol-Oriented Library Design: Part 1
- Protocol-Oriented Library Design: Part 2
- Witness-Oriented Library Design
- Async Functional Refactoring
- A Tour of Snapshot Testing
- The Many Faces of Flat-Map: Part 1
- The Many Faces of Flat-Map: Part 2
- The Many Faces of Flat-Map: Part 3
- The Many Faces of Flat-Map: Part 4
- The Many Faces of Flat-Map: Part 5
- Predictable Randomness: Part 1
- Predictable Randomness: Part 2
- Generative Art: Part 1
- Generative Art: Part 2
- Structs 🤝 Enums
- Enum Properties
- Swift Syntax Enum Properties
- Advanced Swift Syntax Enum Properties
- Swift Syntax Command Line Tool
- What Is a Parser?: Part 1
- What Is a Parser?: Part 2
- What Is a Parser?: Part 3
- Composable Parsing: Map
- Composable Parsing: Flat-Map
- Composable Parsing: Zip
- Parser Combinators: Part 1
- Parser Combinators: Part 2
- Parser Combinators: Part 3
- SwiftUI and State Management: Part 1
- SwiftUI and State Management: Part 2
- SwiftUI and State Management: Part 3
- Composable State Management: Reducers
- Composable State Management: State Pullbacks
- Composable State Management: Action Pullbacks
- Composable State Management: Higher-Order Reducers
- Modular State Management: Reducers
- Modular State Management: View State
- Modular State Management: View Actions
- Modular State Management: The Point
- Effectful State Management: Synchronous Effects
- Effectful State Management: Unidirectional Effects
- Effectful State Management: Asynchronous Effects
- Effectful State Management: The Point
- The Combine Framework and Effects: Part 1
- The Combine Framework and Effects: Part 2
- Testable State Management: Reducers
- Testable State Management: Effects
- Testable State Management: Ergonomics
- Testable State Management: The Point
- SwiftUI Snapshot Testing
- The Case for Case Paths: Introduction
- The Case for Case Paths: Properties
- Case Paths for Free
- Composing Architecture with Case Paths
- Dependency Injection Made Composable
- Dependency Injection Made Modular
- Modular Dependency Injection: The Point
- Adaptive State Management: Performance
- Adaptive State Management: State
- Adaptive State Management: Actions
- Adaptive State Management: The Point
- Ergonomic State Management: Part 1
- Ergonomic State Management: Part 2
- A Tour of the Composable Architecture: Part 1
- A Tour of the Composable Architecture: Part 2
- A Tour of the Composable Architecture: Part 3
- A Tour of the Composable Architecture: Part 4
- Combine Schedulers: Testing Time
- Combine Schedulers: Controlling Time
- Combine Schedulers: Erasing Time
- Composable SwiftUI Bindings: The Problem
- Composable SwiftUI Bindings: Case Paths
- Composable SwiftUI Bindings: The Point
- Designing Dependencies: The Problem
- Designing Dependencies: Modularization
- Designing Dependencies: Reachability
- Designing Dependencies: Core Location
- Designing Dependencies: The Point
- ████ed SwiftUI: The Problem
- Redacted SwiftUI: The Composable Architecture
- The Point of Redacted SwiftUI: Part 1
- The Point of Redacted SwiftUI: Part 2
- Parser Combinators Recap: Part 1
- Parser Combinators Recap: Part 2
- Parsing Xcode Logs: Part 1
- Parsing Xcode Logs: Part 2
- Fluently Zipping Parsers
- Generalized Parsing: Part 1
- Generalized Parsing: Part 2
- Generalized Parsing: Part 3
- Parsing Performance: Strings
- Parsing Performance: Combinators
- Parsing Performance: Protocols
- Parsing Performance: The Point
- Concise Forms: SwiftUI
- Concise Forms: Composable Architecture
- Concise Forms: Bye Bye Boilerplate
- Concise Forms: The Point
- SwiftUI Animation: The Basics
- SwiftUI Animation: Composable Architecture
- SwiftUI Animation: The Point
- Better Test Dependencies: Exhaustivity
- Better Test Dependencies: Failability
- Better Test Dependencies: Immediacy
- Better Test Dependencies: The Point
- A Tour of isowords: Part 1
- A Tour of isowords: Part 2
- A Tour of isowords: Part 3
- A Tour of isowords: Part 4
- Derived Behavior: The Problem
- Derived Behavior: Composable-Architecture
- Derived Behavior: Collections
- Derived Behavior: Optionals and Enums
- Derived Behavior: The Point
- Composable Architecture Performance: View Stores and Scoping
- Composable Architecture Performance: Case Paths
- Async Refreshable: SwiftUI
- Async Refreshable: Composable Architecture
- SwiftUI Focus State
- SwiftUI Searchable: Part 1
- SwiftUI Searchable: Part 2
- Safer, Conciser Forms: Part 1
- Safer, Conciser Forms: Part 2
- SwiftUI Navigation: Tabs & Alerts, Part 1
- SwiftUI Navigation: Tabs & Alerts, Part 2
- SwiftUI Navigation: Sheets & Popovers, Part 1
- SwiftUI Navigation: Sheets & Popovers, Part 2
- SwiftUI Navigation: Sheets & Popovers, Part 3
- SwiftUI Navigation: Links, Part 1
- SwiftUI Navigation: Links, Part 2
- SwiftUI Navigation: Links, Part 3
- SwiftUI Navigation: The Point
- UIKit Navigation: Part 1
- UIKit Navigation: Part 2
- Modularization: Part 1
- Modularization: Part 2
- Parser Builders: The Problem
- Parser Builders: The Solution
- Parser Builders: The Point
- Parser Errors: from Nil to Throws
- Parser Errors: Context and Ergonomics
- Parser Printers: The Problem
- Parser Printers: The Solution, Part 1
- Parser Printers: The Solution, Part 2
- Parser Printers: Generalization
- Parser Printers: Map
- Parser Printers: Bizarro Printing
- Parser Printers: The Point
- Tour of Parser-Printers: Introduction
- Tour of Parser-Printers: vs. Swift's Regex DSL
- Tour of Parser-Printers: URL Routing
- Tour of Parser-Printers: Vapor Routing
- Tour of Parser-Printers: API Clients for Free
- Concurrency's Past: Threads
- Concurrency's Present: Queues and Combine
- Concurrency's Future: Tasks and Cooperation
- Concurrency's Future: Sendable and Actors
- Concurrency's Future: Structured and Unstructured
- Async Composable Architecture: The Problem
- Async Composable Architecture: Tasks
- Async Composable Architecture: Schedulers
- Async Composable Architecture: Streams
- Async Composable Architecture: Effect Lifetimes
- Async Composable Architecture in Practice
- Reducer Protocol: The Problem
- Reducer Protocol: The Solution
- Reducer Protocol: Composition, Part 1
- Reducer Protocol: Composition, Part 2
- Reducer Protocol: Dependencies, Part 1