• Stars
    star
    391
  • Rank 110,003 (Top 3 %)
  • Language
    CoffeeScript
  • License
    MIT License
  • Created about 9 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The compiler of the programming language Shem

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).

More Repositories

1

Golem

Shem's powerful IDE.
CoffeeScript
62
star
2

shader-roy

ShaderToy clone in Rust, currently supporting MacOS.
Rust
25
star
3

convex-ents

TypeScript
18
star
4

saas-starter

Convex, Clerk, Next.js, Convex Ents
TypeScript
18
star
5

uploadstuff

TypeScript
14
star
6

many-to-one

Sync and keep in sync multiple files to one file
CoffeeScript
13
star
7

recomputer

A smart calculator web app
TypeScript
7
star
8

vite-react-stitches-radix

JS app template
JavaScript
7
star
9

convex-auth

Demonstration of authentication purely via Convex
TypeScript
7
star
10

hyper

React.js wrapper for CoffeeScript
CoffeeScript
7
star
11

x-math

Math library inspired by Google Closure library
JavaScript
6
star
12

lenientjs

A better syntax for JavaScript
JavaScript
6
star
13

alfred-menubar-timer

Use Alfred to show a simple countdown timer in macOS menu bar
Python
5
star
14

jfl

JavaScript Standard Functional Library
JavaScript
5
star
15

hg-sl-up

mercurial: hg update to bookmarks and commits interactively via keyboard
JavaScript
4
star
16

object-map

map a function over some Object's values to produce a new Object
JavaScript
4
star
17

paymorebeseen

Pay more be seen, Convex+Stripe demo
TypeScript
4
star
18

seaqull

JavaScript
3
star
19

gump

The task runner that keeps on running
CoffeeScript
3
star
20

mimosa-hyper

Mimosa skeleton for using React.js in CoffeeScript via Hyper
CoffeeScript
3
star
21

stacked-tabs

Display Atom editor tabs stacked just like in Sublime Text for better navigation
CoffeeScript
2
star
22

xcode-file-templates

XCode 4 File Templates compliant with the Google Objective-C Style Guide.
Objective-C
2
star
23

map

map command for unix shells
CoffeeScript
2
star
24

CoffeeTable

Modular web code editor built on CodeMirror.
CoffeeScript
2
star
25

pick-lines

pick lines from input interactively
JavaScript
1
star
26

hg-split-interactive

split hg commits by files interactively
Shell
1
star
27

react-coffee-skeleton

Gulp skeleton using react-coffee by @nathansobo
CoffeeScript
1
star
28

convex-chess-demo

TypeScript
1
star
29

mimosa-bootstrap-stylus

Mimosa setup with bootstrap 2.3.2 ported to Stylus
CoffeeScript
1
star
30

prisma-vs-convex

TypeScript
1
star