Pocket Scheme

Frequently Asked Questions

Learning | Money | CE 1.0 | NT/95/98/2000 | Y2K | Extending | Source

Y2K? CE 1.0? There are some old, old questions in here....

Q: How can I learn Scheme?

A: Possibly the best resource for quickly bootstrapping yourself into Scheme is Dorai Sitaram's tutorial Teach Yourself Scheme in Fixnum Days. Read the first seven chapters, skipping sections 4.1 and 5.2; for the advanced topics of macros and continuations, read chapters 8 and 13. Try also reading the official specification of Scheme (optionally available from my site as a single HTML file, suitable for offline reading) for enlightenment.

Real paper books are easy on the eyes and let you curl up a hammock to read, or perhaps to nap.

Far from casual hammock reading, the classic computer science text Structure and Interpretation of Computer Programs offers a top-flight introduction to thinking about computer programs, using Scheme (which it casually introduces throughout the text) as the vehicle for its lessons. You may read the book either in hardcover (ISBN 0-26201-153-0) or online, as you find convenient.

Q: Do you require payment for Pocket Scheme?

A: Payment in the monetary sense? No. Only for users who somehow find the standard license too restrictive.

By default, I release Pocket Scheme to you under the Artistic License of Perl. This lets you do just about anything with Pocket Scheme (as downloaded from this site in binary form) that you like, short of charge other people money for it or claim that you wrote it. Some additional strictures apply to using the source. Read the license for details.

I always appreciate hearing from people who find Pocket Scheme useful, especially if they in their turn are using it to advance the knowledge frontier or otherwise further some public good. You may consider that karmic payment, if you wish.

Q: Will this ever run on CE 1.0?

A: No. For good behavior when interacting with other applications on the device, Pocket Scheme depends on certain operating system synchronization primitives not present in the original release of the operating system. This prevents it from running on units such as the Hewlett-Packard 300LX or the original Philips Velo 1.

Q: Will this run on desktop Windows NT/95/98/2000?

A: For version 1.1, I did release a version of Pocket Scheme for Windows NT and 2000, as well as a version for Pocket Scheme for Windows 95, 98, and ME. These versions of Pocket Scheme run as console (command-line) applications. Note that the Windows 95 version of Pocket Scheme cannot manipulate Unicode text, though its editor can read UCS-2 format sourcefiles.

Given the score of different Scheme implementations available for the Wintel platform, the only reasons to use mine are to hack Unicode text with a Scheme interpreter smaller than Gambit, or to experiment with the Pocket Scheme FFI in the slightly more forgiving environment of NT, or to develop and run Pocket Scheme scripts on your home NT workstation. Otherwise, if you are looking for a Scheme product to run on your desktop, I recommend one of the following:

Q: Is Pocket Scheme year-2000 compliant?

A: Yes. The Scheme language has no notion itself of year, or of date. Any extension library procedure with a notion of year will retrieve that year value directly from a Windows CE system call, which will return it in no less than a 16-bit integer field; in turn, the Pocket Scheme FFI will store that value in no less than a 28-bit integer field.

For timing evaluated expressions, Pocket Scheme represents time internally with a 32-bit integer, counting milliseconds. All evaluation times printed are modulo 47 days.

Q: Is Pocket Scheme extensible?

A: Yes, very much so.

Lisp is the most redefinable computer language in existence, that being the greatest benefit of its labyrinth of nested parentheses. You can view Lisp not only as a computer language in itself, but as a kit for creating new computer languages. Pocket Scheme continues this tradition of extensibility, supporting the traditional Lisp macro mechanism.

Pocket Scheme also defines an extensive foreign function interface, allowing Scheme programs to make direct system calls to Win32, or into third-party DLLs. Examine the source code samples and usage notes on this site to see the FFI in action.

As a last resort, Pocket Scheme can extend itself via native-code extension libraries, implementing its own network, regular expression, and windowing support in just this manner. This is not a true end-user option, as creating new native-code extension libraries requires tools other than Pocket Scheme itself. In contrast, the macro facility and foreign function interface work completely within Scheme.

Q: Do you publish the source to Pocket Scheme?

A: Yes. I distribute Pocket Scheme under the Artistic License, which requires that all sources remain freely available. Read the license for details of your rights and obligations as a source user. (If for some reason this license is too restrictive for you, I will be happy to negotiate another flavor of license.)

You will find a link to the source code on the download page.

Other destinations

Pocket Scheme
Back to the Pocket Scheme page.
Site Map
Find your way around this site

Last modified: Thu Aug 18 13:17:48 Pacific Standard Time 2005

Ben Goetter (contact information)

Copyright 1998-2005, Ben Goetter. All rights reserved.