Want to learn and master PureScript?

Join Exercism’s PureScript Track for access to 31 exercises with automatic analysis of your code and personal mentoring, all 100% free.

Explore exercises

About PureScript

module HelloWorld where

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

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

Key Features of PureScript


PureScript

Compile to JavaScript

Allowing you to use PureScript anywhere JavaScript is used.

Functional

Use functional techniques such as row polymorphism, algebraic data types, and type classes.

Tooling

PureScript has a rich ecosystem of tools and extensions for most editors.

Statically Typed

PureScript is statically typed, with a powerful type system inspired by Haskell.

Active Community

Active community of developers and users.

Expressive

PureScript has lightweight syntax which allows for expressive code

Get mentored the PureScript way

Every language has its own way of doing things. PureScript is no different. Our mentors will help you learn to think like a PureScript developer and how to write idiomatic code in PureScript. Once you've solved an exercise, submit it to our volunteer team, and they'll give you hints, ideas, and feedback on how to make it feel more like what you'd normally see in PureScript - they'll help you discover the things you don't know that you don't know.

Learn more about mentoring

Community-sourced PureScript exercises

The PureScript track on Exercism has 31 exercises to help you write better code. Discover new exercises as you progress and get engrossed in learning new concepts and improving the way you currently write.

See all PureScript exercises
PureScript

Get started with the PureScript track

The best part, it’s 100% free for everyone.