Language features
LispPad is an application for developing and running Scheme code. The programming language supported by LispPad is called LispKit. LispKit implements the following features, many of which are based on R7RS (small):
- Modules based on R7RS libraries
- Hygienic macros based on
syntax-rules
- First-class environments
call/cc
,dynamic-wind
and exceptions- Dynamically-scoped parameters
- Multiple return values
- Delayed execution via promises and streams
- Support for the full numerical tower consisting of arbitrary size integers, rationals, real numbers, and inexact complex numbers.
- Unicode strings and characters
- Vectors and bytevectors
- Text and binary ports
- R7RS-compliant records
- R6RS-compliant hashtables
- R6RS-compliant enumerations
- All R7RS (small) libraries:
(scheme base)
,(scheme case-lambda)
,(scheme char)
,(scheme complex)
,(scheme cxr)
,(scheme eval)
,(scheme file)
,(scheme inexact)
,(scheme lazy)
,(scheme load)
,(scheme process-context)
,(scheme read)
,(scheme repl)
,(scheme time)
,(scheme write)
,(scheme r5rs)
- Some R7RS (large) libraries from Scheme Red edition:
(scheme box)
,(scheme charset)
,(scheme comparator)
,(scheme generator)
,(scheme hash-table)
,(scheme ideque)
,(scheme list)
,(scheme rlist)
,(scheme set)
,(scheme sort)
,(scheme stream)
,(scheme text)
,(scheme vector)
,(scheme mapping)
- LispKit-specific libraries:
(lispkit base)
,(lispkit core)
,(lispkit control)
,(lispkit system)
,(lispkit system os)
,(lispkit box)
,(lispkit math)
,(lispkit list)
,(lispkit hashtable)
,(lispkit dynamic)
,(lispkit type)
,(lispkit vector)
,(lispkit gvector)
,(lispkit record)
,(lispkit bytevector)
,(lispkit char)
,(lispkit char-set)
,(lispkit string)
,(lispkit regexp)
,(lispkit port)
,(lispkit date-time)
,(lispkit draw)
,(lispkit draw turtle)
,(lispkit datatype)
,(lispkit object)
,(lispkit enum)
,(lispkit stream)
,(lispkit iterate)
,(lispkit comparator)
,(lispkit set)
,(lispkit stack)
,(lispkit queue)
,(lispkit heap)
,(lispkit disjoint-set)
,(lispkit wt-tree)
,(lispkit combinator)
,(lispkit graph)
,(lispkit match)
,(lispkit logic)
,(lispkit clos)
,(lispkit sqlite)
,(lispkit markdown)
,(lispkit json)
,(lispkit csv)
,(lispkit sxml)
,(lispkit sxml html)
,(lispkit sxml xml)
,(lispkit pdf)
,(lispkit log)
,(lispkit test)
,(lispkit debug)
, and(lispkit prettify)
. - LispPad-specific libraries:
(lisppad system)
,(lisppad turtle)
,(lisppad applescript)
,(lisppad speech)
, and(lisppad log)
.
- LispKit-specific libraries: