Skip to content

Latest commit

 

History

History
100 lines (67 loc) · 1.73 KB

README.md

File metadata and controls

100 lines (67 loc) · 1.73 KB

PyreScript

It's a Python backend for PureScript!

Inspired by Purescript-to-Python.

Very Alpha software here!

Installation

You'll need stack.

After installing stack. You should be able to:

stack build

Usage

Assuming all went well you can start compiling files.

stack exec pysc <FILE>

Not much to currently see, but it will compile a simple file like:

module Foo where

infixl 4 wat as +

wat :: forall a b. a -> b -> a
wat x _ =  x

foo :: Int
foo = 1 + 2

bar :: Boolean
bar = true

baz :: Boolean
baz = false

to a file like:

# Generated by pysc version 0.9.1.0

wat = lambda x:     lambda v:         x
foo = wat(1)(2)
baz = False
bar = True
__all__ = [ "bar", "baz", "foo", "wat" ]

Based on that output, there's clearly lots of work to actually be done :).

The file structure looks like:

output
└── Foo
    ├── externs.json
    └── __init__.py

So, you should be able to fire up a python interpreter and use the compiled file:

➜  pyrescript git:(master) ipython
Python 3.5.1 (default, Mar  3 2016, 09:29:07)
Type "copyright", "credits" or "license" for more information.

IPython 4.0.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: import output.Foo

In [2]: output.Foo.bar
Out[2]: True

In [3]: output.Foo.baz
Out[3]: False

In [4]: output.Foo.foo
Out[4]: 1

In [5]: output.Foo.wat([1,2,3])(None)
Out[5]: [1, 2, 3]