This is a LISP (Scheme) interpreter written in QBASIC. It implements linked lists using arrays. It supports optimized proper tail recursion if and only if your BASIC compiler optimizes tail calls (so no for Microsoft QBASIC, yes for FreeBASIC). It does not have garbage collection, and integers are BASIC INTEGERS, not bignums. Why does this exist? I wanted to write an interpreter and was stuck on a Windows XP laptop without Internet. It turned out that QBASIC.EXE was saved somewhere, so I used that.