-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
38 lines (28 loc) · 1.07 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
A very basic Scheme implementation hosted on Lua, with basic Scheme to Lua
interoperability.
Although it does not do so yet, it may at some point conform to
the R*RS specifications.
Lazy overview:
Implemented:
* Language primitves:
- let, let*, if, cond, define, lambda, quote, begin
* Basic functions (cons, car, cdr, type testing, math operations, ...)
* File I/O, console I/O
- Input: open-input-file, call-with-input-file, read, read-char, read-line
- Output: open-output-file, call-with-output-file, write, write-char,
display, newline
* Lua interoperability
- `lua_var` evaluates to `lua_var` translated to Scheme value
- `(lua_func ...)` evaluates to the return value of `lua_func(...)` with the
necessary type conversions.
- `(:method t ...)` is translated to `t:method(...)` with the necessary
conversions.
- `(.field t)` is translated to `t.field`
Not implemented yet but planned:
* Language primitives:
- letrec, and possiblity a few I don't know yet.
* Macros
Not implemented:
* call/cc
May work:
* Proper tail calls