Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/thatsjustcheesy/sparkground
Block-based digital playground for learning functional programming
https://github.com/thatsjustcheesy/sparkground
Last synced: about 2 months ago
JSON representation
Block-based digital playground for learning functional programming
- Host: GitHub
- URL: https://github.com/thatsjustcheesy/sparkground
- Owner: ThatsJustCheesy
- Created: 2023-05-21T04:44:48.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-08-26T21:59:43.000Z (5 months ago)
- Last Synced: 2024-08-27T00:41:43.900Z (5 months ago)
- Language: TypeScript
- Homepage: https://igregory.ca/sparkground
- Size: 14.5 MB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Sparkground
## Block-based digital playground for learning functional programming
Sparkground is an experimental block-based functional programming language, inspired by [Scratch](https://scratch.mit.edu/), [Racket](https://racket-lang.org/) and various industrial languages.
Sparkground was designed from the beginning to facilitate visual code editing, by presenting each expression as a draggable "block". This design space has been extensively explored, most notably by Scratch. However, existing block-based languages rely on the statement-expression dichotemy afforded by an imperative programming paradigm. Enabling visual editing for languages without a statement-expression dichotemy presented (and continues to present) a unique challenge.
Sparkground also has a static type system, with the aim to catch common mistakes and enable certain contextual editing actions. Being a gradual type system, it can be selectively disabled. There is a [writeup](https://igregory.ca/blog/sparkground-static-type-system/) that describes the system in detail.
[Try it](https://igregory.ca/sparkground)