Skip to content

A functional, concatenative, and stack-based programming language inspired by Joy.

Notifications You must be signed in to change notification settings

jeremyheiler/rejoice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Rejoice

An interpretor for a language inspired by Joy.

The purpose of this language is to stick to the Joy philosophy, but not necessarily to be completely backwards compatible. This is a toy research project after all!

For more about Joy, check out the Joy archive for papers, tutorials, and code from Dr Manfred von Thun, the creator of Joy.

Building the source

There currently are no released packages.

To build Rejoice, run the following at the project's root directory.

mvn package

Evaluating code

The eval command executes the provided program and exits the process.

java -jar target/rejoice-{version}.jar eval '1 2 + !'

The command has a --load option that will load a module from a file. If any options are provided, the program must be provided after -- to indicate that there are no more options to handle.

java -jar target/rejoice-{version}.jar eval --load foo.rejoice -- 'foo/bar'

Running a REPL

The repl command will start a REPL. Type Ctl-C to quit the REPL.

java -jar target/rejoice-{version}.jar repl

As with the eval command, repl supports the --load option to load a module from a file.

java -jar target/rejoice-{version}.jar repl --load foo.rejoice

Another option is --eval, which will execute the provided program immediately after starting the REPL.

The following program will load the foo module execute the bar function from that module.

java -jar target/rejoice-{version}.jar repl --load foo.rejoice --eval 'foo/bar'

Help

The help command will list all available commands.

License

This is a pet project. Feel free to play with it, but don't steal it. Thanks :)

Copyright © 2021 Jeremy Heiler.

About

A functional, concatenative, and stack-based programming language inspired by Joy.

Resources

Stars

Watchers

Forks

Releases

No releases published

Languages