The Ludus programming language.
Go to file
2022-05-19 16:17:30 -04:00
doc leinify 2021-10-30 14:51:35 -04:00
src/ludus Play with circular refs around closures 2022-05-19 16:17:30 -04:00
test/cludus leinify 2021-10-30 14:51:35 -04:00
.gitattributes Initial commit 2021-10-21 12:47:28 -04:00
.gitignore Move testing to sandbox dir 2022-05-18 18:28:44 -04:00
CHANGELOG.md leinify 2021-10-30 14:51:35 -04:00
deps.edn Add nrepl deps 2022-01-07 13:36:33 -05:00
LICENSE leinify 2021-10-30 14:51:35 -04:00
logo.png Add logo 2022-04-28 17:07:26 -04:00
ludus add signed binary 2022-04-30 15:26:51 -04:00
project.clj Revert "Add clojurescript" 2022-04-30 14:07:42 -04:00
README.md Update URL for releases after rename 2022-04-29 20:44:46 -04:00

Ludus logo

Ludus: A friendly, dynamic, functional language

A reference implementation of an interpreter for the Ludus programming language, using Clojure as a host language.

Ludus is part of the Thinking with Computers project, run by Scott Richmond at the University of Toronto. Ludus is our research language, which aspires to be a free translation of Logo for the 2020s.

Status

Pre-alpha, still under active development. See the ludus-spec repo for progress notes and additional documentation.

Use

  • Clone this repo.
    • git clone https://github.com/thinking-with-computers/cludus
  • Have Clojure and Leiningen installed.
    • On a Mac: brew install clojure leiningen
  • lein run {script}, it runs your script.
  • Alternately, download a binary on the releases page.

Hello, world!

Ludus is a scripting language. At current it does not have a REPL (our aim is to get interactive coding absolutely correct).

Either

"Hello, world!"

=> "Hello, world!"

Ludus scripts (and blocks) simply return their last expression; this script returns the bare string (to stdout) and exits.

Or:

print ("Hello, world!")
=> Hello, world! 
=> :ok

Or, you can use a the print function, which sends a string to stdout. Because print returns the keyword :ok when it completes, that is the result of the last expression in the script--and so Ludus also prints this.

More on Ludus

Most of the (very active, somewhat messy) thinking about Ludus is housed in the ludus-spec repository.