Fork me on GitHub

Features

See doc/reference for full list of functions.

Macro

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

Javascript language interface

more...

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"))
...

SRFIs

BiwaScheme implements some SRFIs (Scheme Requests for Implementation).

Node.js support

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