LispPad Go
Write Scheme code on the go
Free · Designed for iPad. Not verified for macOS.
LispPad Go is a simple, lightweight, integrated development environment for developing and running Scheme code on iOS. The language supported by LispPad Go is based on the R7RS standard of the Scheme programming language. LispPad Go provides the following components:
• A fully integrated Scheme interpreter
• A console with a read-eval-print loop to interact with the interpreter
• A text editor for writing Scheme code, supporting syntax highlighting, smart indentation, parenthesis matching, etc.
• A large range of libraries, including iOS-specific libraries e.g. for networking, graphics, audio, databases, archival, text processing, etc.
• Support for the Shortcuts app, allowing the execution of LispPad programs as standalone applications
The Scheme dialect supported by LispPad Go provides the following features:
• R7RS-compliant 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 extensible records
• R6RS-compliant hashtables and enumerations
• Threads
more I can cut & paste on my IPad running iPad OS 14.6, between a .PDF of SICP, and execute the examples perfectly in this excellent app. GUI takes a little getting used to, no big deal though. Fun to play around with! Bravo to the developer!
I can cut & paste on my IPad running iPad OS 14.6, between a .PDF of SICP, and execute the examples perfectly in this excellent app. GUI takes a little getting used to, no big deal though. Fun to play around with! Bravo to the developer!
Amazing app for practicing scheme on your phone! I appreciate it and recommend it! The only one thing that I would ask developer: please, if it’s possible and not too hard, add arrow keys to virtual keyboard, at least left and right ones.
Developer Response Thanks a lot for your feedback. As of version 2.2.1, there‘s a second set of keys on the virtual keyboard that includes cursor navigation keys.
Amazing app for practicing scheme on your phone! I appreciate it and recommend it! The only one thing that I would ask developer: please, if it’s possible and not too hard, add arrow keys to virtual keyboard, at least left and right ones.
Thanks a lot for your feedback. As of version 2.2.1, there‘s a second set of keys on the virtual keyboard that includes cursor navigation keys.
R7RS Scheme always with you wherever you go (assuming you take your phone with you everywhere of course 😉)
R7RS Scheme always with you wherever you go (assuming you take your phone with you everywhere of course 😉)
This is a beautiful programming environment. The user interface is clean and easy to use. Documentation is clear and extensive. There are scads of libraries available.
This is a beautiful programming environment. The user interface is clean and easy to use. Documentation is clear and extensive. There are scads of libraries available.
• Introduced library (lisppad system) to enable programs across macOS and iOS that use functionality exposed by (lisppad system macos) and (lisppad system ios)
- New library supporting speech synthesis: (lisppad speech)
- Bugfixes in library (lispkit date-time)
- New sample code: DrawCalendar.scm
- Updated documentation
2.3.1 Sep 16
• Fixed sizing issues of the virtual keyboard extension on iPhones
• LispPad programs can now be executed as "applets" running both in the app and as an intent within Shortcut flows
• Included libray (lisppad applet) which provides an API for managing the lifecycle of an applet, in particular supporting data exchange
• When libraries and applets are being developed in the editor, LispPad now facilitates the installation in its resource tree
• New library for drawing function charts: (lispkit draw chart function)
• Support for turning Markdown into a textual representation to be displayed on ANSI terminals via library (lispkit markdown)
• Extensions of libraries (lisppad system ios), (lispkit format), (lispkit markdown), (lispkit system), and (lispkit string)
• New sample code: ImposeLogo.scm, DrawFunctionCharts.scm, Connect4.scm, and AnsiMarkdown.scm
• Updated LispPad Library Reference and included new documentation for libraries (lispkit sxml), (lispkit sxml html), (lispkit sxml xml), (lispkit wt-tree), (lispkit draw chart function), (lisppad audio), and (lisppad applet)
• Interpreter now based on LispKit 2.6.2
2.3 Aug 26
• Allow executing commands by pressing return on hardware keyboards (new setting)
• Revamped keyboard experience supporting a second extension focused on navigation
• Redesigned definition/document structure switchboard user experience
• Refreshed user experience for some panels
• Fixed inconsistent documentation font sizes
• Fixed bugs involving indentation and commenting features
2.2.1 Feb 22
• Updated app icon
• New library and documentation browser
• New "center menu" in the editor
• Reimplemented canvas view to allow for more complex drawings
• Fixed bugs in the file organizer
• Allow overriding Prelude.scm
• Bug fixes involving quasiquote and cond-expand
• New library for handling locations: (lispkit location)
• New library for creating and editing PDF documents: (lispkit pdf)
• New library for solving computer vision problems: (lispkit vision)
• New libraries for processing/manipulating images: (lispkit image), (lispkit image process)
• New library for drawing maps: (lispkit draw map)
• New library for making and drawing snapshots of web pages: (lispkit draw web)
• Extensions of libraries (lispkit draw), (lispkit core), (lispkit enum), (lispkit date-time), and (lispkit object)
• New sample code: ImageComposition.scm, OCR.scm, MermaidDiagrams.scm, Pinterest.scm
• Updated LispPad Library Reference
• Interpreter now based on LispKit 2.6.0
2.2 Feb 15
• Fixed keyboard shortcuts
• Support separate sets of editor color schemes for light and dark mode
• Allow setting the appearance (light vs. dark) at the application level
• Extended available coding fonts
• Support for all major JSON standards via libraries (lispkit json) and (lispkit json schema)
• Support HTTP-based networking via libraries (lispkit http), (lispkit http oauth), and (lispkit http server)
• Deeper integrations into iOS via libraries (lispkit system keychain) and (lispkit system pasteboard)
• Support for drawing a variety of different types of bar codes via library (lispkit draw barcode)
• New libraries: (lispkit url), (lispkit serialize), (lispkit thread future), and (lispkit thread shared-queue)
• Extended libraries: (lispkit box), (lispkit thread), (lispkit system), (lispkit bytevector), (lispkit markdown), (lispkit dynamic), (lispkit control)
• New sample code: Keychain.scm, WebAPIs.scm, and Webserver.scm
• Updated LispPad Library Reference
• Interpreter now based on LispKit 2.5.0
2.1 11/23/2024
• Support sharing of canvases
• Support smarter parenthesis matching for Lisp code
• Reimplemented overflow menu of the editor, fixing bugs and providing new line-level features
• Reimplemented REPL command history (long-press on "Send" button)
• Reimplemented the "Load"/+ menu for reloading recent files and the editor buffer
• Log files being loaded into the interpreter
• Fixed cursor placement in the interpreter input
• Fixed bug preventing the editor buffer to be emptied when "New" was selected
• Fixed opening recent and starred files
• Improved consistency of icon usage with LispPad on macOS
• Updated LispPad Library Reference
2.0.1 03/04/2024
• Redesigned the navigation between interpreter and editor
• Redesigned the split screen mode for iPads, allowing free positioning of the splitter
• Redesigned file/directory browser fixing usability issues and supporting file previews
• Introduced drawing canvases (left-swipe in console) in addition to the log view (right-swipe in console)
• Libraries can be imported via a swipe in the Libraries view; support for library list refresh
• User experience bug fixes, especially involving modal sheets
• Ported universal formatting facility from Common Lisp and made it available via library (lispkit format)
• Library (lispkit records) now supports extensible records compatible to SRFI 131
• Made application scriptable via library (lisppad system ios)
• Extended libraries: (lispkit system), (lispkit port), (lispkit bitset), (lispkit system), (lispkit draw), (lispkit draw turtle), (lispkit core), (lispkit type), (lispkit bytevector)
• New libraries: (lisppad system ios), (lisppad turtle), (lispkit format), (lispkit crypto), (lispkit archive tar), (lispkit list set), (srfi 239), (srfi 235)
• New sample code: Fractals.scm, Blockchain.scm
• Interpreter now based on LispKit 2.4.0
2.0.0 01/16/2024
• Improved management of recent files and favorites.
• Remember last edited file (can be switched off in the settings)
• Improved display of file names in the editor
• Fixed bug affecting byte vector copy procedures in library (lispkit bytevector)
• Extended library: (lispkit graph)
• New libraries: (srfi 228), (srfi 233), and (srfi 236)
• Interpreter now based on LispKit 2.3.2
1.3.4 02/13/2023
• User interface changes to optimize the look and feel for iOS 16, including revised key bindings
• Access to the log viewer in the console by swiping right
• New settings for defining the maximum stack size and the maximum number of active calls to trace upon errors
• New setting to prevent virtual keyboard extensions to be shown if there is a hardware keyboard
• Display call stack when errors are shown on the console
• Limit stack size to prevent application crashes
• Fixed bug leading to deadlocks when using text ports
• Fixed bug allowing to execute empty lists
• Fixed serious bug leading to an infinite loop when iterating through stack traces
• New procedure in library (lispkit thread): thread-max-stack
• New library: (lisppad draw map)
• New sample code: DisplayMap.scm
• Interpreter now based on LispKit 2.3.1
1.3.3 12/27/2022
• iOS 16 bug fixes
1.3.2 09/21/2022
• Performance improvements: Optimized code generation for lambdas without captured expressions
• Fixed division by zero issues with truncate and floor procedures
• Made procedure open-file of library (lispkit system) work on iOS
• Extended libraries: (lispkit core), (lispkit string), (lispkit math), (lispkit type), (lispkit enum), (lispkit draw), and (lispkit clos)
• New libraries: (lispkit math matrix), (lispkit bitset), (lispkit styled-text), (lispkit draw chart bar), (srfi 118), (srfi 141), (srfi 149), and (srfi 232)
• New sample code: ObjectOrientation.scm, DrawBarCharts.scm, and StyledTextDoc.scm
• Interpreter now based on LispKit 2.3.0
1.3.1 08/15/2022
• Allow setting font in preferences; allow for more granular font size choice
• Support for threads
• Go-inspired channels for synchronizing threads
• Revamp of math libraries, addressing incompatibilities and fixing numerous bugs
• Extended libraries (lispkit math), (lispkit math util), (lispkit system), (lispkit port), and (lispkit debug)
• New libraries: (lispkit thread), (lispkit thread channel), (scheme flonum), (srfi 18), (srfi 144), (srfi 208), and (srfi 230)
• Exceptions now include more information about the active call stack
• Interpreter now based on LispKit 2.2.0
1.3.0 03/02/2022
• Adjusted colors used in REPL to improve legibility
• Fixed bug leading to symbol definition views disappearing behind the keyboard
1.2.2 12/17/2021
• Integrated log viewer into console
• Increased stack size of interpreter
• Fixed file/editor loader
• Fixed scrolling within console
• Included new documentation for libraries (lispkit prolog), (lispkit math stats), (lispkit math util), (lispkit text-table), (srfi 166), (srfi 227), and (srfi 229)
• Interpreter now based on LispKit 2.1.0
1.2.1 12/16/2021
• Optimized user interface for iOS 15
• Improved synchronization with iCloud Drive
• New in-context documentation viewer
• Searchable Libraries view; include libraries that are not loaded
• Support for search/replace; save search/replace history; enable case-insensitive search
• New procedures icloud-directory and cloud-list in library (lisppad system)
• Bug fixes in library (lisppad location)
• Interpreter now based on LispKit 2.0.3
1.2.0 10/03/2021
• Comprehensive support for keyboard shortcuts
• Keyboard shortcut documentation accessible via LispPad menu
• Fixed split view-related bugs (on iPadOS)
• New library (lisppad location) supporting geocoding and reverse geocoding
• New procedure open-in-files-app in library (lisppad system)
• New example code
• Interpreter now based on LispKit 2.0.2
1.1.2 08/19/2021
• Extended keyboard for editing Markdown and Scheme code
• Extended edit menu with support for looking up Scheme definitions in console and editor
• Syntax highlighting, parenthesis matching, automatic indentation in console
• Undo/redo support on iPhones
• Improved keyboard dismissal in console
• New example code
• Interpreter now based on LispKit 2.0.1
1.1.1 07/04/2021
• Console/editor split view on iPadOS
• Markdown document previewer
• Table of contents for markdown documents
• Display graphics directly in the console
• Support tighter line spacing in the console
• Display stack trace in console for errors
• Allow dismissing the keyboard in the editor view
• New library (lispkit archive zip) for creating, reading, and writing zip archives
1.1.0 06/11/2021
• Support opening files in LispPad Go triggered by other apps
• Fixed various dark mode-related bugs
• File handling improvements and bug fixes
• Text editor display improvements
1.0.1 05/06/2021
• Introduced library (lisppad system) to enable programs across macOS and iOS that use functionality exposed by (lisppad system macos) and (lisppad system ios)
- New library supporting speech synthesis: (lisppad speech)
- Bugfixes in library (lispkit date-time)
- New sample code: DrawCalendar.scm
- Updated documentation
more Version 2.3.1 Sep 16
Data Not Collected The developer does not collect any data from this app.