Questions Columns Rows
GitHub icon

PureScript

PureScript - Programming language

< >

PureScript is an open source programming language created in 2013 by Phil Freeman.

Source code:
git clone https://github.com/purescript/purescript
#137on PLDB 10Years Old 5kRepos

Try now: TIO

A strongly-typed language that compiles to JavaScript


Example from the web:
import Prelude import Effect.Console (log) greet :: String -> String greet name = "Hello, " <> name <> "!" main = log (greet "World")
Example from hello-world:
module Main where import Debug.Trace main = trace "Hello World"
Example from Linguist:
module Control.Arrow where import Data.Tuple class Arrow a where arr :: forall b c. (b -> c) -> a b c first :: forall b c d. a b c -> a (Tuple b d) (Tuple c d) instance arrowFunction :: Arrow (->) where arr f = f first f (Tuple b d) = Tuple (f b) d second :: forall a b c d. (Category a, Arrow a) => a b c -> a (Tuple d b) (Tuple d c) second f = arr swap >>> first f >>> arr swap swap :: forall a b. Tuple a b -> Tuple b a swap (Tuple x y) = Tuple y x infixr 3 *** infixr 3 &&& (***) :: forall a b b' c c'. (Category a, Arrow a) => a b c -> a b' c' -> a (Tuple b b') (Tuple c c') (***) f g = first f >>> second g (&&&) :: forall a b b' c c'. (Category a, Arrow a) => a b c -> a b c' -> a b (Tuple c c') (&&&) f g = arr (\b -> Tuple b b) >>> (f *** g) class ArrowZero a where zeroArrow :: forall b c. a b c infixr 5 <+> class ArrowPlus a where (<+>) :: forall b c. a b c -> a b c -> a b c

HackerNews discussions of PureScript

title date score comments
Show HN: PureScript - a functional language which compiles to Javascript 10/31/2013 2 0

View source

- Build the next great programming language Search Add Language Features Creators Resources About Blog Acknowledgements Stats Sponsor Traffic Traffic Today Day 269 feedback@pldb.com Logout