Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bburdette/schelme
A minimal scheme-esque language written in Elm.
https://github.com/bburdette/schelme
Last synced: 3 months ago
JSON representation
A minimal scheme-esque language written in Elm.
- Host: GitHub
- URL: https://github.com/bburdette/schelme
- Owner: bburdette
- License: bsd-3-clause
- Created: 2019-03-18T15:42:07.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2021-04-20T21:12:03.000Z (over 3 years ago)
- Last Synced: 2024-05-18T20:47:33.723Z (8 months ago)
- Language: Elm
- Homepage:
- Size: 199 KB
- Stars: 22
- Watchers: 5
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-elm-pltd - schelme - A minimal scheme-esque language written in Elm. (Languages / Interpreters)
README
# Schelme
Schelme is a scheme-inspired scripting language for Elm.
Schelme is written with incremental execution in mind. Running a schelme program consists of creating an EvalBodyStart state instance, then calling evalBodyStateStep on that instance again and again until either an EvalBodyFinal or EvalBodyError is returned. This way you are free to execute as many evals as you have time for, then move on to other tasks. With this method running multiple schelme programs simultaneously is no problem - you just have to store the latest state for each program.
The Run module contains functions to compile and execute schelme code. Also check the examples to see how to get schelme to call your own custom functions.
You can try out the basic language [here](https://bburdette.github.io/schelmeex3.html). The prelude functions are listed in the initial namespace, and there's a minimal language reference.
Here's a [robot battle demo](https://bots.practica.site). This shows off the incremental execution feature. Its in a [separate repo](https://github.com/bburdette/schelme-bots) now.
And there's [spreadsheet and markdown demos](https://www.github.com/bburdette/cellme) too.