PureScript is a purely-functional, strongly-typed programming language designed to compile to JavaScript.
Designed by Phil Freeman in 2013, PureScript shares several features with Haskell, such as algebraic data types and pattern matching, higher kinded types, type classes, functional dependencies, and higher-rank polymorphism. It adds support for row polymorphism and extensible records, but lacks support for some of the more advanced features of Haskell, such as GADTs and type families.
Where possible, PureScript produces readable JavaScript code through a simple FFI Interface, allowing the reuse of existing JavaScript code.
Compiled PureScript code is readable, and code generation is predictable, whereas compiling the full Haskell programming language to JavaScript can result in overly large, unreadable code.
PureScript supports incremental compilation, including support for building source code editor plugins, which exist for several text editors, including Vim, Emacs, Sublime Text, Atom, and Visual Studio Code.
Phil Freeman, the designer of PureScript, is a Haskell coder, also familiar with TypeScript, who continues to participate in the development of the programming language and its libraries, although it has been picked up by the community and is developed on GitHub, which has added additional core tools, such as Pulp, its dedicated built tool, a documentation directory (Pursuit), and the package manager (Spago).
Pulp is a build and general automation tool for PureScript projects. Written in PureScript, it can be installed and run using NPM, while Pursuit is the package database for PureScript.
Although not as well known as TypeScript, PureScript has been adopted and put into production at several companies.
The focus of this part of our guide is on the programming language known as PureScript. Any editors, compilers, dialects, or IDEs, as well as PureScript user groups, forums, tutorials, or guides, are appropriate resources for this category.
 
 
Recommended Resources
GitHub is a worldwide development platform on which developers and companies build, ship, and maintain their software, such as PureScript. Described as a small, strongly, statically typed language that compiles to JavaScript, the program files and repositories may be downloaded from the site. Public projects, repositories, and packages are available, and profiles of people involved in the PureScript project on GitHub are included, including extensive profiles of each of these people.
https://github.com/purescript/
Provided by Phil Freeman, the creator of the PureScript programming language, the publication is free with membership, but may also be purchased in eBook format at a suggested price, with royalties donated to Code Club, and is free to read online. Designed to teach functional programming techniques, such as maps, folds, type classes, and monads, by applying them to real-world problems like form validation, AJAX callbacks, and drawing with the canvas. A synopsis of the book is provided.
https://leanpub.com/purescript/
The official site for the programming language includes a statement as to the benefits of using PureScript, a Quick Start Guide (hosted on GitHub), and a feature allowing users to try PureScript online. Additionally, the compiler, including binaries, NPM, and tools, such as additional tools and editor plugins, may be downloaded, along with its libraries, documentation, and places in which people can gather to discuss PureScript, either hosted on this site or via links to third-party sites.
https://www.purescript.org/
PureScript Mini-Tutorial Using Nix
In this tutorial, Sridhar Ratnakumar describes his selection of PureScript over GHCJSS Reflex or GHCJS Miso on a project for his Haskell app Neuron, the appeal being that it is comparatively lightweight to install, develop, and use, which is how he describes Neuron itself. The tutorial leads the user through the creation of a standard "Hello World" project, and includes the ghcid of PureScript, using getElementById, as well as logging to console. A link to a full PureScript guide is included.
https://srid.ca/purescript-nix
Hosted on the official PureScript programming language site, the site allows people to practice coding in PureScript, either through trying out examples of algebraic data types, loops, operators, records, recursion, do notation, type classes, generic programming, and QuickCheck, or by creating their own code. A PureScript file can be loaded from GitHub from a gist or a repository and shared using a gist, by including the gist ID in the URL, and the instructions for doing so are given.
https://try.purescript.org/