• Townie
    AI
  • Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
zackoverflow

zackoverflow

lisp

Public
Like
2
lisp
Home
Code
2
README.md
main.tsx
Branches
1
Pull requests
Remixes
History
Environment variables
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Sign up now
Code
/
Code
/
Search
README.md

Lispaas (lisp as a service)

A mini lisp interpreter

How to use:

To execute code:

const result = @zackoverflow.lisp(" (+ 1 2)")

To just parse and return the AST:

const ast = @zackoverflow.lisp("(+ 1 2)", true)

The value returned is the last expression of the program, for example:

const lispResult = @zackoverflow.lisp("(+ 1 2) (+ 400 20)") console.log('Val', lispResult.val === 420)

Example: Compute Fibonacci sequence

let result = @zackoverflow.lisp(` (defun fib (x) (if (<= x 1) x (defun impl (i n-1 n-2) (if (= x i) (+ n-1 n-2) (impl (+ i 1) (+ n-1 n-2) n-1))) (impl 2 1 0))) (assert-eq 0 (fib 0)) (assert-eq 1 (fib 1)) (assert-eq 1 (fib 2)) (assert-eq 2 (fib 3)) (assert-eq 3 (fib 4)) (assert-eq 5 (fib 5)) (assert-eq 8 (fib 6)) (assert-eq 13 (fib 7)) `);

Documentation

Functions

You can define a function like so:

(defun hello (x) (print x))

Rest/variadic arguments are also supported

(defun variable-amount-of-args (...args) (print args)) (variable-amount-of-args "Hello" "World!")

Lists

Define a list like so:

(let ((my-list (list 1 2 3 4))) (print my-list) (print (list-get my-list 1)))

Internally, a list is just a Javascript array. So indexing is O(1), but that does mean cdr requires copying (vs the linked list implementation).

Plists

Property lists, or records. Internally these are Javascript objects.

Create a plist like so:

(set null :key "Value")

TODO

Migrated from folder: lisp/lisp

Code
README.mdmain.tsx
FeaturesVersion controlCode intelligenceCLI
Use cases
TeamsAI agentsSlackGTM
DocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
PricingNewsletterBlogAboutCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Terms of usePrivacy policyAbuse contact
© 2025 Val Town, Inc.