Coder Social home page Coder Social logo

hmemcpy / milewski-ctfp-pdf Goto Github PK

View Code? Open in Web Editor NEW
10.7K 240.0 564.0 70.8 MB

Bartosz Milewski's 'Category Theory for Programmers' unofficial PDF and LaTeX source

Home Page: https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/

License: Other

Makefile 0.13% TeX 79.25% Python 0.25% Nix 0.64% Haskell 2.87% Scala 5.11% OCaml 5.49% Standard ML 0.31% Reason 5.54% C++ 0.40%
haskell category-theory functional-programming pdf latex cpp scala ocaml

milewski-ctfp-pdf's Introduction

GitHub stars GitHub Workflow Status Download License

Category Theory For Programmers

An unofficial PDF version of "Category Theory For Programmers" by Bartosz Milewski, converted from his blogpost series (with permission!).

Category Theory for Programmers

Buy the book

Build the book

The building workflow requires Nix. After installing Nix, you need to enable the upcoming "flake" feature which must be enabled manually the time being. This is needed to expose the new Nix commands and flakes support that are hidden behind feature-flags.

Afterwards, type nix flake show in the root directory of the project to see all the available versions of this book. Then type nix build .#<edition> to build the edition you want (Haskell, Scala, OCaml, Reason and their printed versions). For example, to build the Scala edition you'll have to type nix build .#ctfp-scala.

Upon successful compilation, the PDF file will be placed in the result directory.

The command nix develop will provide a shell containing all the required dependencies to build the book manually using the provided Makefile. To build the ctfp-scala edition, just run make ctfp-scala.

Contribute

Contributors are welcome to contribute to this book by sending pull-requests. Once reviewed, the changes are merged in the main branch and will be incorporated in the next release.

Note from Bartosz: I really appreciate all your contributions. You made this book much better than I could have imagined. Thank you!

Find the list of contributors on Github.

Acknowledgements

PDF LaTeX source and the tools to create it are based on the work by Andres Raba. The book content is taken, with permission, from Bartosz Milewski's blogpost series, and adapted to the LaTeX format.

The original blog post acknowledgments by Bartosz are consolidated in the Acknowledgments page at the end of the book.

License

The PDF book, .tex files, and associated images and figures in directories src/fig and src/content are licensed under Creative Commons Attribution-ShareAlike 4.0 International License.

The script files scraper.py and others are licensed under GNU General Public License version 3.

milewski-ctfp-pdf's People

Contributors

alterego7 avatar arulselvanmadhavan avatar bartoszmilewski avatar drupol avatar efanzh avatar fhammerschmidt avatar fosskers avatar gbabin avatar gvol avatar hmemcpy avatar hololeap avatar joebowbeer avatar jubnzv avatar kaksmet avatar ktgw0316 avatar madnight avatar mseri avatar oylenshpeegul avatar rachelcarmena avatar raol avatar rberenguel avatar rfourquet avatar rkirsling avatar sagehane avatar stillerharpo avatar timmyjose avatar vaibhavsagar avatar vshenoy avatar zegeri avatar zelenya avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

milewski-ctfp-pdf's Issues

Broken external link

In chapter 11 "Declarative Programming", there is a link to "Tatsuya Hagino’s thesis". This link is broken. Furthermore, this should really be a bibliographic reference, not just an external link. I suspect that there are other examples of both of those problems scattered throughout the book.

The link URL is:

http://synrc.com/publications/cat/Category%20Theory/Type%20Theory/Hagino%20T.%20A%20Categorical%20Programming%20Language.pdf

Colophon

Write a short description of how this book was put together

Reformat images

Removed unneeded fbox where applicable (images with white backgrounds)
Also, wrap images inline with text where makes sense.

Fix \circ everywhere

Currently the symbol for white bullet is used everywhere instead of ring operator , because it won't render properly in PDF without using \ensuremath.

epub/mobi/html5 version

Tried to do this myself. Failed miserably :)
Could not get pandoc to work - it did not include any of the subfiles, although according to this issue, they should be supported. Perhaps the problem is with the directory layout?

Period missing

tures invading imperative languages. Even Java, the bastion of object-
oriented programming, let the lambdas in C++ has recently been evolv-

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.