🎉 Exercism Research is now launched. Help Exercism, help science and have some fun at research.exercism.io 🎉


Join the PureScript Track
A strongly-typed functional programming language that compiles to JavaScript
Join the PureScript Track
Track mentors

1 Mentor

Our mentors are friendly, experienced PureScript developers who will help teach you new techniques and tricks.
Track students

713 Students

Join hundreds of students who have enjoyed learning and improving their skills by taking this track.
Track exercises

28 Exercises

Hundreds of hours have gone into making these exercises fun, useful, and challenging to help you enjoy learning.

About PureScript

module HelloWorld where

import Prelude
import Data.Maybe (Maybe(..))

helloWorld :: Maybe String -> String
helloWorld Nothing = "Hello, World!"
helloWorld (Just x) =
  "Hello, " <> x <> "!"

PureScript is a purely functional, statically-typed programming language with global type inference.

Functional means that functions are first-class values. Functions are an important and powerful tool for abstraction. In PureScript, computation is modeled as the evaluation of expressions made up of function applications, rather than as the execution of a sequence of instructions.

Purely Functional means that it is possible to tell if a computation has side-effects or not, meaning that if a computation changes a global variable, reads from input, writes to a socket, etc. it will be reflected in the type of the computation.

Statically-typed means that all computations have a type that is known before running the program.

Global type inference means that the compiler can figure out the type of computations in the entire program without needing the programmer to specify the type.

Join the PureScript track

Exercism is a great website

What I like about it is that I am able to solve the challenges in a TDD way working in a environment that I am familiar (my own PC not a browser IDE) and the cherry on the top of the cake is that I have access to code reviews.

Relaxed. Encouraging. Supportive.

Meet the PureScript Track mentors

Once you join the PureScript language track, you will receive support and feedback from our team of mentors. Here are the bios of a few of the mentors of this track.

Avatar of Matthias Wimmer

Matthias Wimmer https://matthias-wimmer.de/

Professionally I code in Rust and C, but in private life I love Haskell and related languages.
Fun. Challenging. Interesting

Community-sourced PureScript exercises

These are a few of the 28 exercises on the PureScript track. You can see all the exercises here.

Word Count
Sum Of Multiples
Phone Number
pattern matching
Passionate. Knowledgeable. Creative.

Meet the PureScript Track maintainers

The PureScript Maintainers are the brains behind the PureScript Track. They spend their spare time creating interesting and challenging exercises that we can all learn from. We are incredibly grateful for their hard work. Here are the bios of a few of the maintainers of this track.

Avatar of Madeline Trotter

Madeline Trotter

PureScript dev by day, mostly frontends using React.
Avatar of Matthias Wimmer

Matthias Wimmer

Professionally I code in Rust and C, but in private life I love Haskell and related languages.

Get started with the PureScript track. As with everything on Exercism, it's 100% free!

Join the PureScript Track