"A lightweight Lisp dialect implemented in Python."
Stroll is a small, extensible Lisp dialect written in Python. It’s designed to be simple, approachable, and ideal for learning, experimenting, and contributing. Whether you’re new to Lisp or exploring interpreter design, Stroll provides a friendly environment to build and grow with the language.
If you’re new to Lisp, check out our introductory guide.
Here are some of the things Stroll currently has to offer!:
- Basic arithmetic:
+,-,*,/ - Comparison operators:
>,<,>=,<=,==,!= - Additional math functions:
mod,pow,sqrt,abs(some untested)
- Variables:
letto store values - Lists:
listto make lists,appendto add elements - List utilities:
len,reverse,indexto manage elements
- Create strings using quotes
- String functions:
concat,strlen,substr(some untested)
- Conditionals:
if,elif,else(syntax differs from traditional Lisp — see docs) - Loops:
whileloops - Logic values & operators:
&(and),|(or),true,false
- Print to console:
print - Read input:
scan
- Define function with
fn - Set passed in arguments:
argone|argtwo|argthree - Call functions using
call: call a user defined function
(+ 1 2)
(let x 10)
(print x)
(fn square |argone| (* argone argone))
(call square 6)
We’re aiming for:
- Feature progression — rapid growth and iteration
- Good documentation — clear, complete, and beginner-friendly
- Open contributions — an inviting community for all contributors
- Clean code — readable and structured
Interested in Stroll and want to help it grow?
We welcome contributions of all kinds! To get started, please review the contributing guide and explore open issues contributing guide to get started!
If you’d like to add features, improve documentation, or help refine the interpreter, your contributions are appreciated.