LispMe is an R4RS Scheme compiler and runtime system running on PalmOS. It is mainly intended as a tool for quickly trying ideas and algorithms, but you can write dialog-based applications, too.

The following is very incomplete:


macro, macro?, gensym



cxr supports up to 12 x's

circular?, rassoc?, rassq?, rassv?

string->object, string-lower, string-tokenize


acosh, asinh, atanh, cosh


Bit Manipulation

bit-and, bit-not, bit-or, bit-shift, bit-xor



Eval and environments


PalmOS Specific

  • Palm database access

*resdb*?, dbref??, dm-archive-rec?, dm-close-db?, dm-create-db?, dm-db-info?, dm-db-size?, dm-db-list?, dm-delete-db?, dm-delete-rec?, dm-get-rec-attr?, dm-insert-rec?, dm-insert-rsrc?, dm-num-recs?, dm-open-db?, dm-read-rec?, dm-read-rsrc?, dm-remove-rec?, dm-remove-rsrc?, dm-rsrc-db??, dm-set-rec-attr?, dm-update-rec?, dm-update-rsrc?

  • Graphics

*gstate*?, bitmap?, draw?, index->rgb?, move?, rect, rgb->index?, set-palette?, text

  • User interface support

ctl-enter?, ctl-get-label?, ctl-get-val?, ctl-hit?, ctl-repeat?, ctl-select?, ctl-set-label?, ctl-set-val?, error, event?, fld-changed?, fld-copy?, fld-cut?, fld-dirty??, fld-enter?, fld-get-scroll?, fld-get-text?, fld-paste?, fld-scroll?, fld-set-dirty?, fld-set-text?, fld-undo?, frm-alert?, frm-close?, frm-get-focus?, frm-get-prop?, frm-goto?, frm-help?, frm-open?, frm-popup?, frm-return?, frm-set-focus?, frm-show?, frm-title-enter?, frm-title-select?, frm-update?, key-down lst-enter?, lst-get-sel?, lst-get-text?, lst-select?, lst-set-list?, lst-set-sel?, menu?, message?, own-gui?, pen-down?, pen-move?, pen-up?, pop-select?, scl-enter?, scl-exit?, scl-get-val?, scl-repeat?, scl-set-val?, timeout?, wait-pen?

  • HanDBase interface

hb-addrecord?, hb-dir?, hb-info?, hb-getfield?, hb-getlinks?, hb-setfield?, hb-version?

  • Date and Time

current-ticks?, current-ts?, date+?, date-day, date-diff?, date-month, date-time?, date-year, date?, day-of-week?, make-date, make-time, make-ts?, set-ticks?, ticks-per-sec?, ticks-since?, ticks??, time-hour?, time-minute?, time?, ts->date?, ts->number?, ts->time?, ts-second?, ts??

  • Serial port

close-serial?, new-serial??, open-serial?, serial-get-cts?, serial-get-timeout?, serial-info?, serial-input?, serial-output?, serial-receive-flush?, serial-send-flush?, serial-set-break!?, serial-set-cts!?, serial-set-irda!?, serial-set-rx!?, serial-set-timeout!?, serial-status?, serial??

  • Sockets

close-netlib?, lookup-host?, make-client-socket, socket-down?, socket-host-address, socket-hostname?, socket-input, socket-local-address, socket-output, socket-port-number, socket-shutdown, socket?

  • Virtual file system

vfs-close?, vfs-create-dir?, vfs-delete?, vfs-dir?, vfs-eof??, vfs-get-attr?, vfs-get-ts?, vfs-open?, vfs-open-input?, vfs-open-output?, vfs-read?, vfs-ref??, vfs-rename?, vfs-seek?, vfs-set-attr?, vfs-set-ts?, vfs-size?, vfs-supported??, vfs-tell?, vfs-vol-get-label?, vfs-vol-info?, vfs-vol-set-label?, vfs-vol-size?, vfs-volumes?, vfs-write?

  • C datatypes

buf-get-cstr?, buf-get-date?, buf-get-f32?, buf-get-f64?, buf-get-s16?, buf-get-s32?, buf-get-s8?, buf-get-time?, buf-get-ts?, buf-get-u16?, buf-get-u32?, buf-get-u8?, buf-set-cstr!?, buf-set-date!?, buf-set-f32!?, buf-set-f64!?, buf-set-s16!?, buf-set-s32!?, buf-set-s8!?, buf-set-time!?, buf-set-ts!?, buf-set-u16!?, buf-set-u32!?, buf-set-u8!?

  • Miscellaneous Palm API

battery-info?, crash?, get-clipboard-text?, get-sys-pref?, hotsync-info?, launch?, rom-version?, serial-number?, set-clipboard-text?, set-sys-pref?

R4RS Extended operators

max, min support strings and chars

R4RS Omissions, Restrictions and Incompatabilities

Continuations implemented with call/cc. call-with-current-continuation is omitted.

cond expression sequences in each clause must not be empty.

define does not allow undefined variables.

make-string, make-vector both require 2 arguments.

map in standard library takes 2 arguments only. (Custom definition of map is possible.)

read, read-char Require 1 argument.

string->symbol, string->number not implemented. Use string->object.

substring has different error conditions