Skip to content

Impl is a cute but powerful little LISP dialect geared towards generating images.

License

Notifications You must be signed in to change notification settings

DanielRJohnson/Impl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Impl (Image Programming Language)

A cute but powerful little LISP dialect geared towards generating images.

Inspiration

Inspired by Norvig's lis.py, Impl started as a subset of Scheme, but diverged because I had an idea to make a language that produces images from language features.

What can it do?

Impl has a good size set of standard procedures and keywords.

Impl supports:

  • List, Int, Float, String, and Boolean operations borrowing from Python's semantics
  • User-defined variables and first-class procedures with lexical scope
  • If-else conditionals
  • Ease of use language features like let, for, and ' quoting
  • "keywords" like :x, inspired by Clojure
  • etc.

Examples

Examples can be found in _examples/, but here are a couple of animations I generated using Impl.

Random starting point with cell alive probability of 15%

Usage

python <path to impl.py> <source file name?>

Running Impl without any arguments results in the REPL, which can evaluate expressions but is not meant for generating images. Running Impl with one filename argument executes the given file.

About

Impl is a cute but powerful little LISP dialect geared towards generating images.

Resources

License

Stars

Watchers

Forks