Gauche

Gauche is an R5RS Scheme interpreter aimed to be a script engine for daily work. Handles several multibyte character encodings natively.

(As of October 2013, git HEAD almost implements R7RS-small. The next release is expcted to provide full R7RS-small support.)

http://practical-scheme.net/gauche/

Implementing SRFIs: SRFI-0 SRFI-1 SRFI-2 SRFI-4 SRFI-5 SRFI-6 SRFI-7 SRFI-8 SRFI-9 SRFI-10 SRFI-11 SRFI-13 SRFI-14 SRFI-16 SRFI-17 SRFI-18 SRFI-19 SRFI-22 SRFI-23 SRFI-25 SRFI-26 SRFI-27 SRFI-28 SRFI-29 SRFI-30 SRFI-31 SRFI-34 SRFI-35 SRFI-36 SRFI-37 SRFI-38 SRFI-39 SRFI-40 SRFI-42 SRFI-43 SRFI-45 SRFI-46 SRFI-55 SRFI-60 SRFI-61 SRFI-62 SRFI-87 SRFI-95 SRFI-98 SRFI-99 SRFI-106


Programming in Gauche

*argv*, *program-name*

Core syntax

set!-values, has-setter??, push!, pop!, inc!, dec!, update!?, when, unless, let1, fluid-let, receive, begin0, dotimes, dolist?, while, until, define-values, define-constant, define-in-module

define-module, select-module, with-module, export, export-all, extend?, import, current-module, use, module?, find-module, make-module?, all-modules, module-name, module-imports, module-exports, module-table, module-parents?, module-precedence-list?, global-variable-bound??, global-variable-ref?, module-name->path?, path->module-name?, null, scheme, gauche, user

define-macro, macroexpand, macroexpand-1, %macroexpand, %macroexpand-1, syntax-error, syntax-errorf, unwrap-syntax

Core library

object-equal??

<number>?, <complex>?, <real>?, <integer>?, fixnum?, bignum?, min&max, quotient&reminder, clamp, sinh, cosh, tanh, asinh, acosh, atanh, decode-float, fmod?, modf?, frexp?, ldexp?, number->string, x->number, x->integer, ash, logand, logior, logxor, lognot, logtest, logbit?, bit-field, copy-bit, copy-bit-field, logcount, integer-length,

<boolean>?, <list>?, <null>?, <pair>?, acons, list*, list-copy, list-ref, last-pair, append!, reverse!

<symbol>?, gensym, <keyword>?, keyword?, make-keyword, keyword->string, get-keyword, get-keyword*, delete-keyword, <identifier>?, identifier?, identifier->symbol

<char>?, digit->integer, integer->digit, char->ucs, ucs->char, gauche-character-encoding, supported-character-encodings

<char-set>?, #[, char-set?, char-set-contains?, char-set, char-set-copy

<string>?, string-immutable?, string-incomplete?, #", make-byte-string?, x->string, #`, string-interpolate, string-size, string-ref, string-byte-ref, string-byte-set!, string->list, string-copy, string-fill!, string-join, string-scan, string-split, <string-pointer>?, make-string-pointer?, string-pointer??, string-pointer-next!?, string-pointer-prev!?, string-pointer-set!?, string-pointer-substring?, string-pointer-index?, string-complete->incomplete, string-incomplete->complete

<regexp>?, <regmatch>?, #/, string->regexp, rxmatch, rxmatch-substring, rxmatch-start, rxmatch-end, rxmatch-after, rxmatch-before, rxmatch-let, rxmatch-if, rxmatch-cond, rxmatch-case, regexp-replace, regexp-replace-all, regexp-replace*?, regexp-replace-all*?, regexp-quote

<vector>?, vector-ref,

<hash-table>?, hash, object-hash, eq-hash?, eqv-hash?, make-hash-table, hash-table?, hash-table-type?, hash-table-num-entries?, hash-table?, hash-table-get, hash-table-put!, hash-table-exists?, hash-table-delete!, hash-table-push!, hash-table-pop!, hash-table-update!, hash-table-for-each, hash-table-map, hash-table-fold, hash-table-keys, hash-table-values,

<weak-vector>?, make-weak-vector?, weak-vector-length?, weak-vector-ref?, weak-vector-set!?

error, errorf, with-error-handler?, <exception>?, current-exception-handler, raise, with-exception-handler,

<port>?, port-closed?, current-error-port, standard-input-port, standard-output-port, standard-error-port, with-input-from-port, with-output-to-port, with-error-to-port, port-type, port-name, port-current-line, port-file-number, port-buffering, copy-port, open-input-file, open-output-file, call-with-input-file, call-with-output-file with-input-from-file, with-output-to-file, open-input-fd-port?, open-output-fd-port?, open-input-string, open-output-string, get-output-string, call-with-input-string, call-with-output-string, with-input-from-string, with-output-to-string, call-with-string-io, with-string-io, write-to-string, read-from-string, open-input-buffered-port?, open-output-buffered-port?, read-byte, read-line, read-block, port->string, port->list, port->string-list, port->sexp-list, port-fold, port-fold-right?, port-for-each?, port-map?, write-object?, flush, flush-all-ports, write-byte, write*, format,

load, *load-path*?, add-load-path?, load-from-port, current-load-port, current-load-history, current-load-next, dynamic-load?, require, provide, provided? autoload

sort, sort!

exit, sys-exit, sys-getenv, sys-putenv, gauche-version, gauche-architecture, gauche-library-directory, gauche-architecture-directory, gauche-site-library-directory, gauche-site-architecture-directory, sys-readdir, sys-glob, sys-remove, sys-rename, sys-tmpnam, sys-mkstemp?, sys-link, sys-unlink, sys-symlink, sys-readlink?, sys-mkdir, sys-rmdir, sys-umask?, sys-normalize-pathname?, sys-basename, sys-dirname, file-exists?, file-is-regular?, file-is-directory?, <sys-stat>?, sys-stat, sys-lstat, sys-fstat?, sys-stat->mode?, sys-stat->ino?, sys-stat->dev?, sys-stat->rdev?, sys-stat->nlink?, sys-stat->size?, sys-stat->uid?, sys-stat->gid?, sys-stat->atime?, sys-stat->mtime?, sys-stat->ctime?, sys-stat->file-type?, sys-access, sys-chmod?, sys-chdir, sys-pipe, sys-isatty, sys-ttyname, sys-getgrgid?, sys-getgrnam?, sys-gid->group-name?, sys-group-name->gid?, sys-getpwuid?, sys-getpwnam?, sys-uid->user-name?, sys-user-name->uid?, sys-crypt?, sys-setlocale?, <sys-sigset>?, sys-sigset-add!?, sys-sigset-delete!?, sys-signal-name?, sys-kill, with-signal-handlers?, sys-uname?, sys-getcwd, sys-getgid, sys-getegid, sys-getuid, sys-geteuid, sys-getgroups?, sys-getlogin?, sys-getpgrp?, sys-getpid, sys-getppid, sys-times?, sys-ctermid?, <sys-tm>?, sys-time?, sys-gmtime, sys-localtime, sys-ctime?, sys-difftime?, sys-asctime?, sys-strftime?, sys-mktime?, sys-tm->alist?, sys-system, sys-fork?, sys-exec?, sys-wait?, sys-waitpid?, sys-wait-exited??, sys-wait-exit-status?, sys-wait-signaled??, sys-wait-termsig?, sys-wait-stopped??, sys-wait-stopsig?, <sys-fdset>?, sys-fdset-ref?, sys-fdset-set!?, sys-fdset-max-fd?, sys-select?, sys-select!?, sys-pause, sys-alarm, sys-sleep, sys-random?, sys-srandom?, sys-abort?, sys-fmod?, sys-frexp?, sys-mkfifo, sys-setgid?, sys-setpgid?, sys-setpgrp?, sys-getpgid?, sys-setsid?, sys-setuid?, sys-gethostname, sys-getdomainname?

Object system

class-of, is-a?, define-class?, define-generic?, define-method?, make?, initialize?

slot-ref?, slot-set!?, slot-bound??, slot-exists??, slot-unbound?, slot-missing?, class-slot-ref?, class-slot-set!?,

<top>?, <class>?, <generic>?, <method>?, <object>?,

class-name?, class-precedence-list?, class-direct-supers?, class-direct-slots?, class-slots?,

<slot-accessor>?, class-slot-definition?, class-slot-accessor?, slot-definition-name?, slot-definition-allocation?, slot-definition-getter? slot-defininion-setter?, slot-definition-accessor?, slot-definition-options?, slot-definition-option?,

compute-slots?, compute-get-n-set?, slot-ref-using-accessor?, slot-set-using-accessor?,

apply-generic?, sort-applicable-methods?, method-more-specific??, apply-methods?, apply-method?,

Library modules

DBM interface

dbm?, <dbm>?, <dbm-meta>?, dbm-open?, dbm-close?, dbm-closed??, dbm-put!?, dbm-get?, dbm-exists??, dbm-delete!? dbm-fold?, dbm-for-each?, dbm-map?, dbm.gdbm?, <gdbm>?, gdbm-close?, gdbm-closed??, gdbm-store?, gdbm-fetch?, gdbm-delete?, gdbm-firstkey?, gdbm-nextkey?, gdbm-reorganize?, gdbm-symc?, gdbm-exists?, gdbm-strerror?, gdbm-setopt?, gdbm-version?, gdbm-errno?, dbm.ndbm?, <ndbm>?, ndbm-open?, ndbm-close?, ndbm-closed??, ndbm-store?, ndbm-fetch?, ndbm-delete?, ndbm-firstkey?, ndbm-nextkey?, ndbm-error?, ndbm-clear-error?, dbm.odbm?, <odbm>?, odbm-init?, odbm-close?, odbm-store?, odbm-fetch?, odbm-delete?, odbm-firstkey?, odbm-nextkey?,

Filtering file content

file.filter?, file-filter?

Filesystem utility

file.util?, current-directory, directory-list, directory-list2?, directory-fold?, make-directory*, create-directory*?, remove-directory*?, delete-directory*?, build-path, absolute-path?, relative-path?, expand-path, resolve-path, simplify-path, file-type, file-perm?, file-mode, file-ino?, file-dev?, file-rdev?, file-nlink, file-uid?, file-gid?, file-size, file-atime?, file-mtime?, file-ctime?, file-is-readable?, file-is-writable?, file-is-executable?, file-eq??, file-eqv??, file-equal??, file-mtime=??, file-mtime<??, file-mtime<=??, file-mtime>??, file-mtime>=??, file-atime=??, file-atime<??, file-atime<=??, file-atime>??, file-atime>=??, file-ctime=??, file-ctime<??, file-ctime<=??, file-ctime>??, file-ctime>=??,

Character code conversion

gauche.charconv?, ces-conversion-supported??, open-input-conversion-port?, open-output-conversion-port?, ces-convert?, ces-guess-from-string?,

Collection & sequence framework

gauche.collection?, fold, map, map-to, for-each, find, filter, filter-to, remove, remove-to, partition, partition-to, size-of?, lazy-size-of?, coerce-to, call-with-iterator?, with-iterator?, call-with-iterators?, call-with-builder?, with-builder?, gauche.sequence?, ref, referencer?, modifier?, subseq

Low-level file operations

gauche.fcntl?, sys-fcntl?, <sys-flock>?,

Interactive session

gauche.interactive?, apropos, describe, d

User-level logging

gauche.logger?, <log-drain>?, log-open?, log-format?

Networking

gauche.net?, <sockaddr>?, sockaddr-family?, sockaddr-name?, <sockaddr-in>?, <sockaddr-un>?, <socket>?, make-client-socket, make-server-socket, socket-address?, socket-input-port, socket-output-port, socket-close?, call-with-client-socket?, make-socket?, socket-fd?, socket-status?, socket-bind?, socket-listen?, socket-accept, socket-connect?, socket-shutdown, socket-setsockopt?, socket-getsockopt?, <sys-hostent>?, sys-gethostbyname?, sys-gethostbyaddr?, <sys-servent>?, sys-getservbyname?, sys-getservbyport?, <sys-protoent>?, sys-getprotobyname?, sys-getprotobynumber?,

Parsing command-line options

gauche.parseopt?, parse-options?, make-option-parser?

High Level Process Interface

gauche.process?, <process>?, run-process, process?, process-pid, process-command?, process-input, process-output, process-error, process-alive?, process-list, process-wait, process-send-signal?, process-kill, process-stop, process-continue, open-input-process-port? call-with-input-process?, with-input-from-process?, open-output-process-port?, call-with-output-process?, with-output-to-process?, call-with-process-io?, process-output->string, process-output->string-list

Simple dispatcher

gauche.selector?, <selector>?, selector-add!?, selector-delete!?, selector-select?

Singleton

gauche.singleton?, <singleton-meta>?, instance-of?

Termios

gauche.termios?, <sys-termios>?, sys-tcgetattr?, sys-tcsetattr?, sys-tcsendbreak?, sys-tcdrain?, sys-tcflush?, sys-tcflow?, sys-tcgetpgrp?, sys-tcsetpgrp?, sys-cfgetispeed?, sys-cfsetispeed?, sys-cfgetospeed?, sys-cfsetospeed?,

Unit Testing

gauche.test?, test, test-start?, test-section?, test-end,

Slot with validator

gauche.validator?, <validator-meta>?

Comparing version numbers

gauche.version?, version=??, version<??, version<=??, version>??, version>=??, version-compare?, relnum-compare?,

RFC822 Message parsing

rfc.822?, rfc822-header->list?, rfc822-parse-date?,

Base64 encoding/decoding

rfc.base64?, base64-encode?, base64-encode-string?, base64-decode?, base64-decode-string?,

HTTP cookie handling

rfc.cookie?, parse-cookie-string?, construct-cookie-string?,

URI parsing and construction

rfc.uri?, uri-scheme&specific?, uri-decompose-hierarchical?, uri-decompose-authority?, uri-decode?, uri-decode-string?, uri-encode?, uri-encode-string

Srfi-4

s8vector-copy!?, s16vector-copy!?, s32vector-copy!?, s64vector-copy!?, u8vector-copy!?, u16vector-copy!?, u32vector-copy!?, u64vector-copy!?, f32vector-copy!?, f64vector-copy!?, s8vector->vector?, s16vector->vector?, s32vector->vector?, s64vector->vector?, u8vector->vector?, u16vector->vector?, u32vector->vector?, u64vector->vector?, f32vector->vector?, f64vector->vector?, vector->s8vector?, vector->s16vector?, vector->s32vector?, vector->s64vector?, vector->u8vector?, vector->u16vector?, vector->u32vector?, vector->u64vector?, vector->f32vector?, vector->f64vector?,

CSV tables

text.csv?, make-csv-reader?, make-csv-writer?

Simple HTML document construction

text.html-lite?, html-escape?, html-escape-string?, html-doctype?,

Parsing input stream

text.parse?, find-string-from-port??, peek-next-char?, assert-curr-char?, skip-until?, skip-while?, next-token?, next-token-of?, read-string

Transliterate characters

text.tr?, tr?, string-tr?, build-transliterator?

Lazy text construction

text.tree?, write-tree?, tree->string?

Isomorphism

util.isomorph?, isomorphic??, object-isomorphic??

Queue

util.queue, make-queue, queue?, queue-empty?, enqueue!, queue-push!, dequeue!, queue-pop!, dequeue-all!, queue-front, queue-rear

Topological sort

util.toposort?, topological-sort?,

CGI Utility

www.cgi?, cgi-parse-parameters?, cgi-get-parameter? cgi-header?, cgi-main?,

List Utility

util.list?, take*?, drop*?, take-right*?, drop-right*?, split-at*?, slices, intersperse, cond-list?, alist->hash-table, hash-table->alist, rassoc?, rassq?, rassv?, assoc-ref?, assq-ref?, assv-ref?, rassoc-ref?, rassq-ref?, rassv-ref?, assoc-set!?, assq-set!?, assv-set!?

Pattern Matching Library

match, match-lambda, match-lambda*, match-let, match-let*, match-letrec, match-let1?, match-define