GitXplorerGitXplorer
x

Shem

public
392 stars
4 forks
0 issues

Commits

List of commits on branch master.
Verified
980d6c2f3e54034736f9d6feae11ae1d2d2fb469

Link to github pages cause I lost the domain

xxixixao committed 4 years ago
Unverified
30aa12af288934ad9434e9d867d445387fa770de

Add instructions for using Shem without Golem

xxixixao committed 8 years ago
Unverified
9b27ee4056ee2634b3361f8b6d34a8b65aa9413c

Fix compiling folders

xxixixao committed 8 years ago
Unverified
f3ce86564c86bb0cad5fc5f941d33e1d5179f5c8

Added test for referencing types

xxixixao committed 8 years ago
Unverified
220b67b11ecc353a142320b6b94f5f2360470ea1

Dont error error object

xxixixao committed 8 years ago
Unverified
cc3c179d59de2eed4e107ae01c271d7784e7fe5f

Fix referring to types without namespace in quote

xxixixao committed 8 years ago

README

The README file for this repository.

Shem

Shem is a new compiled-to-JS, statically typed, pure-by-default functional programming language. The semantics are based on Haskell but the language evaluates strictly in a similar way to PureScript. The syntax is S-expressions-based, allowing for a full-blown LISP-like macro system. Shem's prelude includes a full-featured, highly-polymorphic collections library backed by ImmutableJS.

The language has been designed for the use within its custom built IDE, Golem available at http://xixixao.github.io/Golem, inspired by Bret Victor.

A screenshot of the Golem IDE showing the source and debugging of a binary search function

A screenshot of the Golem IDE with a running animation

Here Be Lions

Use without Golem

Clone this repo, go to the folder, then

npm install
npm run build

To run a single file

echo '_ (.log (global "console") "Hello world!")' > test.shem
bin/shem test.shem

To compile a single file to JavaScript

bin/shem -c test.shem

To run a module

mkdir test-modules
echo 'message "Hello, hello, world!"' > test-modules/Hello.shem
echo '[message] (req ./Hello) _ (.log (global "console") message)' > test-modules/index.shem
bin/shem test-modules

To compile a module

bin/shem -o test-modules-out-dir -c test-modules

Demo

https://www.youtube.com/watch?v=HnZipJOan54 (for now)

I am providing code in this repository to you under an open source license. Because this is my personal repository, the license you receive to my code is from me and not from my employer (Facebook).