Skip to content

Instantly share code, notes, and snippets.

@mprymek
Last active August 29, 2015 14:21
Show Gist options
  • Save mprymek/3797cfff72b0adb25085 to your computer and use it in GitHub Desktop.
Save mprymek/3797cfff72b0adb25085 to your computer and use it in GitHub Desktop.
PureScript Quickstart
## This is a quickstart tutorial for PureScript. Unlike with other tutorials, you don't need
## any build-manager (Grunt etc.) installed globally. We will use locally-installed Gulp.
##
## Prerequisites:
## - cabal (Haskell package manager)
## - npm (Node package manager)
## You will find both of them in your OS' repository.
## install PureScript compiller
$ cabal update
$ cabal install purescript
## create a project directory
$ mkdir /some/where/hello
$ cd /some/where/hello
## create "Makefiles"
$ cat >package.json <<EOF
{
"name": "hello-purescript",
"version": "0.0.1",
"description": "Hello PureScript!",
"license": "MIT",
"devDependencies": {
"gulp": "3.5.2",
"gulp-purescript": "0.4.2"
},
"scripts": {
"build": "gulp ps-build"
}
}
EOF
$ cat >gulpfile.js <<EOF
var gulp = require('gulp');
var purescript = require('gulp-purescript');
gulp.task('ps-build', function(){
return gulp.src('src/**/*.purs').
pipe(purescript.psc({main: "Main", module: ["Main"]})).
pipe(gulp.dest('build'));
});
EOF
## source file(s)
$ mkdir src
$ cat >src/Main.purs <<EOF
module Main where
import Debug.Trace
main = do
trace "Hello sailor!"
EOF
## install dependencies (gulp, gulp-purescript) into node_modules directory
$ npm install
## build .js file in build/ directory
$ npm run build
## run generated .js file
$ node build/psc.js
Hello sailor!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment