0.2.1 • Published 4 years ago

oricode v0.2.1

Weekly downloads
15
License
SEE LICENSE IN LI...
Repository
github
Last release
4 years ago

oricode

Functional programming for everyone

Installation

TBA

Usage

TBA

Why?

There are a lot of great functional libraries out there, so why build another one?

Well, mainly because it was my way of actually learning the fundamentals of functional programming. I was working on a project that I was trying to apply some functional programming since I was reading Professor Frisby's Mostly Adequate Guide to Functional Programming (and watching vides on YouTube and EggHead) and was having trouble finding a library that was just "import and use". It's very difficult to just get started with functional programming. Unless you know exactly what you need and where to look for it, you're bound to get frustrated trying to figure out if you should use an Either or a Task or what the hell Maybe means.

The idea for oricode is to be a very approachable library that you can just drop into any project and start writing composable functions without having to worry about how it works. But I also wanted oricode to be useful for those who are already familiar with FP so you can keep using oricode even after you have nailed monads and functors.

This is a work in progress and it's subject to change. When I think oricode has enough functions to be actually useful, I'll do a 1.0 release

Why are the code commentaries so weird?

Besides typings and your usual documentation, I've added a few excerpts from Mostly Adequate's in the documentation. It should be a big refresher of how a particular thing works. Maybe in the future I'll remove the excerpts from the documentation but leave it at the source code, who knows?

What's with the weird name?

It's a pun. Origami, in Japanese, comes from ori, meaning "fold" and kami, meaning paper. Since fold is so ubiquitous to functional programming, I called this library oricode.

oricode © 2020+, Filipe Kiss Released under the Blue Oak License. Authored and maintained by Filipe Kiss with help from contributors.

GitHub @filipekiss  ·  Twitter @filipekiss