LispPad
  • Home
  • Applications
    • 🖥️LispPad
      • Sessions
      • Editor
      • Preferences
    • 📱LispPad Go
    • 📜Language
    • 📖Libraries
  • Libraries
    • ⚙️LispKit
      • (lispkit archive tar)
      • (lispkit archive zip)
      • (lispkit base)
      • (lispkit bitset)
      • (lispkit box)
      • (lispkit bytevector)
      • (lispkit char)
      • (lispkit char-set)
      • (lispkit combinator)
      • (lispkit comparator)
      • (lispkit control)
      • (lispkit core)
      • (lispkit crypto)
      • (lispkit csv)
      • (lispkit datatype)
      • (lispkit date-time)
      • (lispkit debug)
      • (lispkit disjoint-set)
      • (lispkit draw)
      • (lispkit draw turtle)
      • (lispkit draw barcode)
      • (lispkit draw chart bar)
      • (lispkit dynamic)
      • (lispkit enum)
      • (lispkit format)
      • (lispkit graph)
      • (lispkit gvector)
      • (lispkit hashtable)
      • (lispkit heap)
      • (lispkit http)
      • (lispkit http oauth)
      • (lispkit http server)
      • (lispkit iterate)
      • (lispkit json)
      • (lispkit json schema)
      • (lispkit list)
      • (lispkit list set)
      • (lispkit log)
      • (lispkit markdown)
      • (lispkit match)
      • (lispkit math)
      • (lispkit math matrix)
      • (lispkit math stats)
      • (lispkit math util)
      • (lispkit object)
      • (lispkit port)
      • (lispkit prolog)
      • (lispkit queue)
      • (lispkit record)
      • (lispkit regexp)
      • (lispkit serialize)
      • (lispkit set)
      • (lispkit sqlite)
      • (lispkit stack)
      • (lispkit stream)
      • (lispkit string)
      • (lispkit styled-text)
      • (lispkit system)
      • (lispkit system call)
      • (lispkit system keychain)
      • (lispkit system pasteboard)
      • (lispkit test)
      • (lispkit text-table)
      • (lispkit thread)
      • (lispkit thread channel)
      • (lispkit-thread-future)
      • (lispkit thread shared-queue)
      • (lispkit type)
      • (lispkit url)
      • (lispkit vector)
    • ⚙️LispPad
      • (lisppad applescript)
      • (lisppad draw map)
      • (lisppad location)
      • (lisppad speech)
      • (lisppad system)
      • (lisppad turtle)
    • ⚙️SRFI
  • Examples
    • 📝LispKit
    • 📝LispPad
    • 📝LispPad Go
  • Releases
    • 🖥️LispPad
    • 📱LispPad Go
  • Downloads
  • Privacy Policy
  • Contact
Powered by GitBook
On this page
  • Features
  • Incompatibilities
  • Included libraries
  • Source code
  1. Applications

Language

Programming language supported by LispPad

PreviousLispPad GoNextLibraries

Last updated 2 years ago

Features

LispPad is an IDE for the programming language Scheme. The Scheme dialect supported by LispPad is based on the . The following features are available:

  • Modules via libraries

  • Hygienic macros based on the syntax-rules standard

  • First-class environments

  • call/cc, dynamic-wind and exceptions

  • Dynamically-scoped paramaters

  • 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

  • -compliant records

  • -compliant hashtables

  • -compliant enumerations

  • SRFI 18-compliant multi-threading

Incompatibilities

  • Datum comments introduced via #; do not always work as expected.

Included libraries

LispPad supports all standard 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)

Most of the R7RS (large) libraries from the "Red" and "Tangerine" edition are supported as well:

  • (scheme bitwise)

  • (scheme box)

  • (scheme charset)

  • (scheme comparator)

  • (scheme division)

  • (scheme fixnum)

  • (scheme flonum)

  • (scheme generator)

  • (scheme hash-table)

  • (scheme ideque)

  • (scheme list)

  • (scheme mapping)

  • (scheme rlist)

  • (scheme set)

  • (scheme sort)

  • (scheme stream)

  • (scheme text)

  • (scheme vector)

Source code

It is also possible to access the source code from within LispPad. On macOS, pressing option while opening the File menu will reveal a menu item "Open LispKit…" which provides access to the LispKit source code bundled with LispPad. Similarly, pressing control while opening the File menu will reveal a menu item "Open LispPad..." for accessing the LispPad-specific code, e.g like the LispPad prelude.

LispPad is incompatible or incomplete with respect to the following features:

Lists are immutable. Mutable cons-cells are supported in a way similar to .

LispPad also includes all the .

LispPad comes with several . They provide a native integration of drawings defined via (lispkit draw) and (lispkit draw turtle), a means to script the application, an API to do geocoding, speech synthesis, etc. There is also a LispPad-specific logging library extending the LispKit logging library for usage within the IDE.

LispPad also includes many .

The source code of the Scheme interpreter and the included libraries has been open-sourced and . Example code and the Scheme sources of the included libraries can be found .

📜
R7RS (small) standard
R7RS
R7RS
R6RS
R6RS
R7RS
Racket
LispKit libraries
LispPad-specific libraries
SRFI (Scheme Request for Implementation) libraries
published at GitHub
here