Fork me on GitHub


See doc/reference for full list of functions.


BiwaScheme does not have syntax-ruels or syntax-case, but has define-macro.

Javascript language interface


Synchronous interface

Some of the BiwaScheme library functions are implemented as "Synchronous" funcitons.

For example, (sleep sec) will stop evaluation of Scheme program for sec seconds, and then the rest of the program will be evaluated.

(alert "Hello")
(sleep 3)
(alert "World")  ; Evaluated after 3 seconds

Other synchronous functions are listed below.

You can get rid of JavaScript's "callback hell" using these APIs.

// JavaScript (nested callback)
$.get("/a", function(a){
  $.get("/b", function(b){
    $.get("/c", function(c){

// BiwaScheme
(define a (http-request "/a"))
(define b (http-request "/b"))
(define c (http-request "/c"))


BiwaScheme implements some SRFIs (Scheme Requests for Implementation).

Node.js support

You can use BiwaScheme on the server-side with npm install biwascheme (more...)