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 core 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 box)
,(lispkit type)
,(lispkit hashtable)
,(lispkit log)
,(lispkit test)
,(lispkit match)
,(lispkit datatype)
,(lispkit object)
,(lispkit clos)
,(lispkit enum)
,(lispkit logic)
,(lispkit iteration)
,(lispkit gvector)
,(lispkit set)
,(lispkit stack)
,(lispkit queue)
,(lispkit heap)
,(lispkit wt-tree)
,(lispkit prettify)
,(lispkit json)
,(lispkit csv)
,(lispkit char-set)
,(lispkit date-time)
,(lispkit regexp)
,(lispkit stream)
,(lispkit graph)
,(lispkit draw)
,(lispkit draw turtle)
, and(lispkit pdf)