- Functional Programming Made Easier is a more recent work that literally walks you through every possible thought process, mistake, compiler error, and issue you would need to make to learn PureScript and build a web application in one book. I would recommend reading this book over the PureScript by Example book below.
- Purescript By Example is the official up-to-date book that teaches Purescript.
- PureScript Cookbook is an unofficial cookbook that shows "How to do X" in PureScript.
- "Not Yet Awesome" PureScript is a list of things that are not yet awesome in PureScript
- Configure Web Browser for Convenient Pursuit Lookup shows how to make it easy to search all documentation.
- Consider using this same approach to setup a search using Starsuit, a Pursuit copy that works only packages in the latest package-set (a concept described more in the Build Tools folder of this repo). Use "https://spacchetti.github.io/starsuit/#search:" as your search.
- PureScript Migration Guides when a breaking change is made.
While reading through this repo, the Functional Programming Jargon might be a helpful reference whenever you come across a term that isn't covered in this project.
This repo will not explain how to write algorithms in a performant way using an FP language. Consider reading Algorithm Design with Haskell which does teach algorithms using an FP language.
If you're coming to PureScript with a Haskell background, be sure to consult the following resources:
- Introduction to Purescript for Haskell Developers (pdf)
- The Purescript Documentation Repo's "Differences from Haskell" page
At various times, you may try to use something like Google to find documentation / examples and little will appear in the search results.
A better solution is to use GitHub's search. To learn its syntax, read searching code.
Then, you use a search query like the following:
|Find examples of projects that use a dependency (e.g. ||Search a project's top-level files (e.g. |
|Find real-world examples of code that uses libraries (e.g. ||Search a project's |
|Find real-world examples of code that uses testing libraries (e.g. ||Search a project's |
- Anytime you need to look up the documentation for a package, you have two options:
- use Pursuit.
- Pros: One can navigate through a library's version and dependencies
- Cons: Some of the deprecated packages mentioned above are still posted there. (e.g.
purescript-dom-*packages, which are deprecated in favor of
- use Starsuit
- Pros: Only provides documentation for packages in the latest package set
- Cons: One does not immediately know which version of a library is displayed, nor what its dependencies are.
- use Pursuit.
- Read Pursuit's Search Help page
- Some libraries have not been updated to
0.13.8and are still on the
0.11.7release. Some still work; others won't. In this work, we will insure that you do not use any such libraries, but be aware of that if you browse the docs on your own.
- Lastly, some libraries have not uploaded their latest versions' documentation. In these cases, we will forewarn you. Fortunately,
spago docswill produce a local version of the source code's documentation that looks similar to Pursuit. It does not support all the features of Pursuit, but it's better than nothing. To do that, follow these commands:
spago docs --openwill generate the documentation and then use your default web browser to open the file,
Undocumented Pursuit Tip
To get the latest version of the Pursuit docs of a package's function, package's type, or the package itself, simply remove the version in the url. Pursuit will load the latest version of that package: https://pursuit.purescript.org/packages/purescript-prelude/docs/Data.Eq