awesome-fp-ts
awesome-fp-ts copied to clipboard
A curated list of amazingly awesome fp-ts resources
Awesome fp-ts resources
A curated list of amazingly awesome fp-ts resources.
If you think something should be added, please create a new issue.
Getting started
- Mostly adequate guide to FP-TS
- Book: Introduction to Functional Programming by Giulio Canti
- Eq
- Ord
- Semigroup
- Monoid
- Category
- Functor
- Applicative
- IO
- Either vs Validation
- Monad
Advanced
- How to write type class instances for your data type
- Interoperability with non functional code using fp-ts
- Introduction to property based testing
Community
- Should I use fp-ts Task?
- fp-ts Cheatsheet
- fp-ts, sequenceT, and sweet sweet async typed FP
- fp-ts and Beautiful API Calls
- When An Error Is Not An Exception
- FP-TS for HTTP-requests
- Basic introduction to FP-TS
- The State monad
Practical Guide by Ryan Lee
- Pipe and Flow
- Option, Map, Flatten, Chain
- Task, Either, TaskEither
- Arrays, Semigroups, Monoids
- Apply, Sequences, and Traversals
- The Do Notation
Yuriy Bogomolov
- Introduction series to FP-TS
- Building eDSLs in functional TypeScript :film_strip:
- YBogomolov/monadic-mondays
- Making Illegal States Unrepresentable
Andy White
Why is fp-ts TaskEither Like That?
Functional design
- combinators
-
how to make the
time
combinator more general - tagless final
- smart constructors
-
TDD in TypeScript (aka abusing
declare
) - Algebraic Data Types
Domain modeling in TypeScript by Benoit Ruiz
- Introduction
- The domain and some concepts
- Using fp-ts and newtype-ts: types
- Using fp-ts and newtype-ts: implementation
- Using fp-ts and io-ts: types and implementation
Examples
- grossbart.github.io/fp-ts-recipes - A collection of practical examples
- gcanti/docs-ts - A zero-config documentation tool for my TypeScript projects
Coming from lodash/ramda
- giogonzo/fp-ts-ramda - Ramda functions reimplemented
- tecklund/lodash-to-fp-ts - Lodash functions reimplemented
- samhh/fp-ts-std - missing pseudo-standard library
Bindings
- gcanti/fp-ts-rxjs
- gcanti/fp-ts-local-storage
- gcanti/fp-ts-fluture
- joshburgess/fp-ts-most
- werk85/fp-ts-ixjs
Libraries
- gcanti/fp-ts-contrib - A community driven utility package
- gcanti/fp-ts-routing - A type-safe bidirectional routing library for TypeScript
- gcanti/retry-ts - Retry combinators for monadic actions that may fail
- nrdlab/pattern-matching-ts
- devexperts/remote-data-ts - algebraic data type
- gcanti/io-ts - Runtime type system for IO decoding/encoding
- gcanti/io-ts-types - A collection of codecs and combinators
- gillchristian/io-ts-reporters - Error reporters
- gcanti/monocle-ts - Functional optics: a (partial) porting of Scala monocle
-
unsplash/request-frp - Package that provides pure wrappers around
fetch
andXMLHttpRequest