Skip to content
This repository has been archived by the owner on May 29, 2023. It is now read-only.

i-am-tom/fantas-eel-and-specification

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Fantas, Eel, and Specification Join the chat at https://gitter.im/fantas-eel-and-specification/Lobby

Hello, friends! If you're reading this, I'm either in the process of writing - or have finished writing - a series of blog posts on the Fantasy Land specification for typeclasses in JavaScript - hooray!

When I started trying to get to grips with the Fantasy Land spec and its uses, I spent most of my day with this expression:

Katya reads the Comonad spec

The thing is that a lot of these patterns are going to be pretty weird if you're coming from a different paradigm (most likely OOP). In any case, it's probably going to be helpful to have some examples. With that in mind, I'm going to fill this repo with exactly that, and refer to it whenever I get stuck.

I'll aim to include all examples and exercises from the blog series, as well as some new ones as I stumble across them. If you want to contribute, please submit pull requests with updates to the current examples, or even exciting new stuff! All discussion is productive, and (if you haven't guessed) I love talking about this stuff. Heads up: I intend to uphold a code of conduct, as we're all hopefully more interested in functional programming than upsetting each other. I'm optimistic!

Finally, ask questions! I'm by no means an expert, but I'll do my best to be useful, or at least point you in the direction of more helpful people. I don't know about you, but I like the idea of a functional future for JS, so it's totally in my best interests to clarify anything that might confuse people.

Thanks!