-
id=biwa-script
-
div id=biwa-console
-
.. syntax
-
LICENCE to biwascheme(-min).js
-
[r6rs] Errors and conditions
-
[r6rs] library definition and loading
-
biwas(repl) should 'write' the result
#(1 2) 1,2
-
(print (js-eval "null")) raises error (only on Node?) -- should think more about .to_display, .to_write, .toString, .inspect BiwaScheme.to_display : used by (display), etc. BiwaScheme.to_write : used by (write), etc. BiwaScheme.inspect : used by BiwaScheme.inspect .toString : used by Firebug?
display -> write <- inspect | v toString
||Type ||Source||write ||display||inspect||toString ||boolean||#t ||'#t' || || ||'true' (js) ||nil ||() ||'()' || || ||'nil' ||number ||1 ||'1' || || ||'1' (js) ||symbol ||'a ||'a' || || ||''a' ||string ||"a" ||'"a"' ||'a' || ||'"a"' or "'a'" (js) ||char ||#\a ||'#\a' ||'a' ||[write]||
||vector ||#(1 2)||"#(1 2)"|| || ||"1,2" (js) ||pair ||'("a")||'("a"')"|| ||inspect||[inspect]
||function||(js-clojure f)||"#<...>"||
||enum-set ||e|| || || ||"#<...>" ||hashtable||h||"#<...>" || || || ||record ||r||"#<...>" || || || ||port ||p||"#<...>" || ||"#<...>"||
||undef || || || || ||"#"
||null ||(js-eval "null")||"#" || || || ||undefined||(js-eval "undefined")||"#" || || ||
- unbound variable reference in define-macro returns undefined (yhara/#15)
-- list->js-array, js-array->list
-- check uses of assert_closure
- maybe should use assert_procedure
- rename assert_closure to assert_lambda?
-- fix leaking variables
-- dynamic-wind
-- handle error on biwas(REPL)
--- [r6rs] vector quasiquote --- [r6rs] case-lambda --- [r6rs] syntax-case, syntax-rules --- [r6rs] some functions for numbers --- should try http://github.com/dyoo/js-numbers/ ?
--- [r6rs][node] i/o
--- use Node for unit tests --- use biwas instead of Makefile
--- combination of with-output-to-port and values
--- better parser (for missing syntaxes)
- #\vtab, etc.
- #b, #o
- a program "1;;" raises error: unbound symbol: '1;;'
- Regexp literal (#/foo/)
--- list-sort with compare function implement quick sort in CPS
-- reference
--- make test/browser_functions/ online --- merge server.js to web.js?
-- better example for index.html (display "hello") does not work without #bs-console
-- provide compiled older versions of biwascheme.js
--- better css
- same header for demos, tracer, etc (frame?)
--- remove _types.js
--- remove test/console_test.js
-
passing multiple values to continuation (receive a (call/cc (lambda (c) (c 1 2 3))) (display a)) should be (1 2 3)
-
equal should stop (let ((x (list 'a 'b 'c 'a)) (y (list 'a 'b 'c 'a 'b 'c 'a))) (set-cdr! (list-tail x 2) x) (set-cdr! (list-tail y 5) y) (equal? x y))
Interesting SRFIs
Partially implemented:
- 1 list libraries
- 13 string libraries
- 19 time
- 38 (write-with-shared-structure)
- 43 vector libraries
Not yet:
- 26 (cut)
- 39 (parameterize) is it identical to the one in R7RS?
Maybe:
- 41 stream
- 42 (list-ec)
- 44 collection
- 48 (format) (intermediate, ~d, ~b, etc.)
- 78 (check) -> list-ec
- 88 keyword (like 'test:')