All Projects → scalawithcats → Scala With Cats

scalawithcats / Scala With Cats

Source code for Scala with Cats

Programming Languages

javascript
184084 projects - #8 most used programming language
scala
5932 projects

Projects that are alternatives of or similar to Scala With Cats

Functional Light Js
Pragmatic, balanced FP in JavaScript. @FLJSBook on twitter.
Stars: ✭ 14,764 (+5116.96%)
Mutual labels:  book, functional-programming
Creative Scala
Quick, graphical, fun introduction to programming in Scala.
Stars: ✭ 171 (-39.58%)
Mutual labels:  book, functional-programming
Write You A Haskell
Building a modern functional compiler from first principles. (http://dev.stephendiehl.com/fun/)
Stars: ✭ 3,064 (+982.69%)
Mutual labels:  book, functional-programming
Program Blog
Practice, thinking and reading
Stars: ✭ 228 (-19.43%)
Mutual labels:  book, functional-programming
Underscore.py
Python port of underscore.js
Stars: ✭ 277 (-2.12%)
Mutual labels:  functional-programming
Progressive Web Apps Book
All of the code for "Progressive Apps" - a book by Dean Hume
Stars: ✭ 270 (-4.59%)
Mutual labels:  book
Programming
Code a program in a language of your choice.
Stars: ✭ 269 (-4.95%)
Mutual labels:  functional-programming
Sihl
A modular functional web framework
Stars: ✭ 267 (-5.65%)
Mutual labels:  functional-programming
Tensorflow In Depth
《深入理解TensorFlow》项目代码与样章
Stars: ✭ 281 (-0.71%)
Mutual labels:  book
Solid
Книга о принципах объектно-ориентированного дизайна SOLID
Stars: ✭ 280 (-1.06%)
Mutual labels:  book
Hott Intro
An introductory course to Homotopy Type Theory
Stars: ✭ 277 (-2.12%)
Mutual labels:  book
Guide.elm Lang.org
My book introducing you to Elm!
Stars: ✭ 270 (-4.59%)
Mutual labels:  book
Hexo Douban
💿 A simple plugin for hexo that helps us generate pages for douban books ,movies and games.
Stars: ✭ 277 (-2.12%)
Mutual labels:  book
Rwdtow
Ruby Web Dev: The Other Way. Personal best practices guide.
Stars: ✭ 267 (-5.65%)
Mutual labels:  book
Quark
Common combinators for Elixir
Stars: ✭ 279 (-1.41%)
Mutual labels:  functional-programming
Tongjian
资治通鉴易读版
Stars: ✭ 268 (-5.3%)
Mutual labels:  book
Friendbook
📕 "友书" 小说阅读app
Stars: ✭ 275 (-2.83%)
Mutual labels:  book
Swiftrex
Swift + Redux + (Combine|RxSwift|ReactiveSwift) -> SwiftRex
Stars: ✭ 267 (-5.65%)
Mutual labels:  functional-programming
Practical Modern Javascript
🏊 Dive into ES6 and the future of JavaScript
Stars: ✭ 2,931 (+935.69%)
Mutual labels:  book
Golang Tutorials
Go Tutorials - Let's get our hands really dirty by writing a lot of Golang code
Stars: ✭ 277 (-2.12%)
Mutual labels:  functional-programming

Scala with Cats

Copyright Noel Welsh and Dave Gurnell, 2014-2017.

Artwork by Jenny Clements.

Published by Underscore Consulting LLP.

Creative Commons Licence
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Overview

Scala with Cats teaches core functional abstractions of monoids, functors, monads, and applicative functors using the Cats library and a number of case studies.

Building

The build requires a lot of heavy machinery: texlive, node, java, scala, and pandoc and pandoc-crossref. The simplest way to build it is to use Docker Compose with the provided shell scripts, Dockerfile, and docker-compose.yaml:

  • install Docker Compose (brew install docker-compose on OS X; or download from docker.com); and

  • run go.sh (or docker-compose run book bash if go.sh doesn't work).

This will open a bash shell running inside the Docker container that contains all the dependencies to build the book.

From the shell run sbt to open an SBT prompt, from which you can issue the following commands:

  • pdf builds a PDF version in dist/scala-with-cats.pdf;
  • html builds an HTML version in dist/scala-with-cats.html;
  • epub builds an ePub version in dist/scala-with-cats.epub;
  • all builds all three versions.

The pdf, html, and epub commands are each made of three smaller commands:

  • {foo}Setup creates temp directories and builds JS/CSS prerequisites for the HTML/ePub versions;
  • mdoc runs the files in src/pages through mdoc to compile and run the Scala snippets;
  • {foo}Pandoc runs the output of mdoc through pandoc to produce the output.

There are also tex and json commands (and commands like texSetup, jsonPandoc, and so on) that build a LaTeX version of the book and a Pandoc AST respectively. These are useful for debugging the build.

Contributing

If you spot a typo or mistake, please feel free to fork the repo and submit a Pull Request. Add yourself to src/pages/intro/contributors.md to ensure we credit you for your contribution.

If you don't have time to submit a PR or you'd like to suggest a larger change to the content or structure of the book, please raise an issue instead.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].