The Scheme binding is maintained by Johannes Leveling <Johannes.Leveling@fernuni-hagen.de>
The specification for this binding is not yet available on-line; however, the API is described in the README file from the BZoom implementation distribution.
To give a flavour of the Scheme binding, here is ZOOM's equivalent of the ``Hello World'' program: a tiny Z39.50 client that fetches and displays the MARC record for Farlow & Brett Surman's The Complete Dinosaur from the Library of Congress.
(module hello_world (include "bzoom.sch") (include "bzoom.scm") (main main)) (define main (lambda (args) (let ((conn (zoom:connection_new "z3950.loc.gov:7090/Voyager" 0))) (zoom:connection_option_set conn "preferredRecordSyntax" "USMARC") (let* ((r (zoom:connection_search_pqf conn "@attr 1=7 0253333490")) (rec (zoom:record_get (zoom:resultset_record r 0) "render"))) (if (pair? rec) (display (car rec))) 0))) )
We currently have the following implementations of the Scheme binding: