mirror of
https://github.com/kanaka/mal.git
synced 2024-11-11 00:52:44 +03:00
4eb88ef295
Tested on UCBLogo 6.0 with some minor tweaks (for performance and adding a `timems` function). The tweaks are performed during Docker image creation (see Dockerfile). Tests of step 5 are skipped because UCBLogo is too slow. Interop is available via `(logo-eval "logo code to run")`. The `examples` directory contains a Mal example of drawing a tree using turtle graphics.
32 lines
384 B
Plaintext
32 lines
384 B
Plaintext
load "../logo/readline.lg
|
|
|
|
to _read :str
|
|
output :str
|
|
end
|
|
|
|
to _eval :ast :env
|
|
output :ast
|
|
end
|
|
|
|
to _print :exp
|
|
output :exp
|
|
end
|
|
|
|
to repl
|
|
localmake "running "true
|
|
while [:running] [
|
|
localmake "line readline word "user> :space_char
|
|
ifelse :line=[] [
|
|
print "
|
|
make "running "false
|
|
] [
|
|
if not emptyp :line [
|
|
print _print _eval _read :line []
|
|
]
|
|
]
|
|
]
|
|
end
|
|
|
|
repl
|
|
bye
|