Skip to content
William Reynolds edited this page Jan 11, 2020 · 6 revisions

Introduction: What is ts-cat?

This library is a collection of tools made to solve the most common programming problems with very little overhead. Have you ever found yourself constantly checking for undefined? How about writing a bunch of comments to tell other developers how your functions should be used? Have you ever wished your data structures would just do these things for you? They can!

This library aims to provide three things:

  1. A well-documented introduction to development using the practical concepts of category theory.

  2. A set of data structures which can help eliminate boilerplate logic and enhance readability.

  3. A set of interfaces you can use in your own project to write some data structures of your own.

What you should know already

This library starts to move into the intermediate-to-advanced realm of functional programming. Therefore, you should be familiar with the basics:

  • Immutability
  • Pure functions
  • Side-effects
  • Idempotent functions
  • Arity
  • Currying
  • Composition

You should be confident with Javascript at a minimum. Knowing the basics of Typescript is a big plus. If you know another multi-paradigm language like Python, Java, or Go, you'll probably be okay.

How to Use This Wiki

Read it at your leisure. While this library's design is rooted in Category Theory, you don't need to know anything about Category Theory to understand how to use ts-cat. You don't need to read the articles in this wiki in a specific order. The concepts are meant to be atomic and everything you need to know to dive into everything else will be in the [Getting Started][getting-started] section.

Table of Contents

  1. Getting Started (wip)
  2. Category Theory (wip)
  3. Common Categories (wip)
  4. Common Data Structures (wip)