Computer ScienceScience & MathematicsEconomics & FinanceBusiness & ManagementPolitics & GovernmentHistoryPhilosophy

Professor Frisby's Mostly Adequate Guide to Functional Programming

by Brian Lonsdorf

Professor Frisby's Mostly Adequate Guide to Functional Programming

Subscribe to new books via dBooks.org telegram channel

Join
DescriptionTable of ContentsDetailsReport an issue

Book Description

This is a book on the functional paradigm in general. We'll use the world's most popular functional programming language: JavaScript. Some may feel this is a poor choice as it's against the grain of the current culture which, at the moment, feels predominately imperative.

That said, typed functional languages will, without a doubt, be the best place to code in the style presented by this book. JavaScript will be our means of learning a paradigm, where you apply it is up to you. Luckily, the interfaces are mathematical and, as such, ubiquitous. You'll find yourself at home with Swiftz, Scalaz, Haskell, PureScript, and other mathematically inclined environments.

This open book is licensed under a Creative Commons License (CC BY-SA). You can download Professor Frisby's Mostly Adequate Guide to Functional Programming ebook for free in PDF format (2.4 MB).

Table of Contents

Chapter 1
What Ever Are We Doing?
Chapter 2
First Class Functions
Chapter 3
Pure Happiness with Pure Functions
Chapter 4
Currying
Chapter 5
Coding by Composing
Chapter 6
Example Application
Chapter 7
Hindley-Milner and Me
Chapter 8
Tupperware
Chapter 9
Monadic Onions
Chapter 10
Applicative Functors
Chapter 11
Transform Again, Naturally
Chapter 12
Traversing the Stone
Appendix A
Essential Functions Support
Appendix B
Algebraic Structures Support
Appendix C
Pointfree Utilities

Book Details

Title
Professor Frisby's Mostly Adequate Guide to Functional Programming
Subject
Computer Science
Publisher
Self-publishing
Published
2019
Pages
146
Edition
1
Language
English
PDF Size
2.4 MB
License
CC BY-SA

Related Books

Smooth CoffeeScript
An introduction to CoffeeScript programming with an emphasis on clarity, abstraction and verification. Smooth CoffeeScript is a free book about CoffeeScript and programming. No previous programming knowledge is required. Over 200 pages and 35 exercises....
Invent Your Own Computer Games with Python
Invent Your Own Computer Games with Python teaches you how to program in the Python language. Each chapter gives you the complete source code for a new game, and then teaches the programming concepts from the examples. Games include Guess the Number, Hangman, Tic Tac Toe, and Reversi. This book also has an introduction to making games with 2D graph...
Learn Programming
This book is aimed at readers who are interested in software development but have very little to no prior experience. The book focuses on teaching the core principles around software development. It uses several technologies to this goal (e.g. C, Python, JavaScript, HTML, etc.) but is not a book about the technologies themselves. The reader will le...
Think Raku (Think Perl 6)
The title of this book was originally Think Perl 6, but since Perl 6 has been renamed Raku, we have also changed the title of the book. Want to learn how to program and think like a computer scientist? This practical guide gets you started on your programming journey with the help of Raku (Perl 6), the younger sister of the popular Perl programm...
Beej's Guide to C Programming
This is an intro to C for folks who already know how to program in another language. The first half of the book is written in a tutorial style, while the second half is a reference section complete with examples (inspired by the incomparable Turbo C Bible). The goal is to keep this up-to-date with the latest C standards. This guide assumes that ...
A Functional Pattern System for Object-Oriented Design
This book integrates the vital areas of object-orientation, functional programming, design patterns, and language design. The most important concepts from functional programming are captured with six design patterns: FUNCTION OBJECTS (Black-box behaviour parameterisation) LAZY OBJECTS (Evaluation-by-need semantics) VALUE OBJECTS (Immutable values) ...