sforman
d0623508bd
Use Scheme symbols for Thun symbols.
...
It seems more elegant that way, but I haven't tested it to find out if
it has better performance or memory usage (yet.)
2023-10-19 20:54:11 -07:00
sforman
7f5c1d3086
Symbols for symbols.
...
This shouldn't work yet, because the parser makes Lisp symbols out of
the Thun symbols, but the match expr still has strings. In the REPL
this fails, but in the compiled Joy binary it doesn't fail, the
interpreter interprets just fine.
2023-10-15 11:41:44 -07:00
sforman
68a85c915a
add defs for select and small; cleaner joy-func.
2023-10-13 07:42:22 -07:00
sforman
205086714d
A little more match.
2023-10-11 20:36:01 -07:00
sforman
c4d80f6c4e
Use match a little more.
2023-10-11 20:13:02 -07:00
sforman
93556efeeb
Use match instead of cond.
2023-10-11 20:01:35 -07:00
sforman
8e15a657ed
Minor indentation change, a typo.
2023-10-10 12:12:07 -07:00
sforman
4df31667b6
Remove global stack, dict.
...
Pass them through the recursive loop instead.
2023-10-10 11:16:30 -07:00
sforman
937f6bfce5
Put a bang on add-def.
2023-10-10 10:45:00 -07:00
sforman
d833f1a3e9
Implement `bool` and trace for Scheme.
2023-10-08 17:57:05 -07:00
sforman
20b517f083
Figlet headings.
2023-08-18 16:59:32 -07:00
sforman
48e443c5c7
for-each
2023-08-12 14:09:44 -07:00
sforman
596a7a21eb
A crude main loop.
...
I know there are better ways to do this, but I don't know what they are
yet. Maybe a "do" loop? Anyway, this works, although it doesn't catch
errors yet.
2023-08-12 13:03:42 -07:00
sforman
00f4bfcacd
Math ops, definitions for left- and right-shift.
2023-08-12 08:04:21 -07:00
sforman
f45c739fad
first rest
2023-08-11 23:02:46 -07:00
sforman
1a37a8e81c
concat cons comparison
2023-08-11 22:48:25 -07:00
sforman
8df8634e39
loop
2023-08-11 21:27:41 -07:00
sforman
172407fef1
branch and refactor simple functions.
...
The refactor should be a macro but I don't know how to write those yet
(apparently there are different macros systems... ooo la la!)
2023-08-11 21:15:26 -07:00
sforman
4d6d66e391
dip
2023-08-11 20:49:24 -07:00
sforman
c3e6c1be90
i
2023-08-11 20:45:25 -07:00
sforman
ae7d854330
swap
2023-08-11 20:38:01 -07:00
sforman
9fbb7c05c3
pop
2023-08-11 20:34:40 -07:00
sforman
b921a9e3d2
stack, swaack
2023-08-11 11:11:51 -07:00
sforman
5f8e33ff8d
Add copyleft notice.
2023-08-11 11:03:00 -07:00
sforman
3382d0a47e
Load defs at compile time.
...
I don't really know the proper way to do this, but I managed to whump
something up.
2023-08-11 10:48:33 -07:00
sforman
8fab04b02e
Evaluate definitions.
2023-08-11 10:31:53 -07:00
sforman
67b60be123
Convert defs.txt to defs.scm.
...
Gonna need a makefile.
2023-08-11 10:15:31 -07:00
sforman
d014709a32
Load defs from defs.txt.
...
They are loaded at runtime though :( shouldn't be too hard to fix that?
2023-08-11 08:50:00 -07:00
sforman
b6c3c364d0
A start on dictionaries using srfi-69 hash tables.
2023-08-10 21:49:37 -07:00
sforman
19777a86ae
Use '->' in names of functions that convert values.
2023-08-10 21:48:46 -07:00
sforman
1bad1508f1
dup
2023-08-10 21:47:54 -07:00
sforman
a56a3939c1
minor edit
2023-08-10 21:46:56 -07:00
sforman
7c9663594b
A start on simple functions.
...
I'm sure there's a cooler way to do this, but it works. (This is my
first Scheme code.)
2023-08-04 10:38:52 -07:00
sforman
8cc15a745f
Parser emits errors; joy
2023-08-04 09:52:09 -07:00
sforman
ea60a04d96
joy-expression-to-string
2023-08-04 08:14:45 -07:00
sforman
35ffe71482
text-to-expression
2023-08-04 07:47:12 -07:00
sforman
dedbb0115f
It's Joy.
...
Or will be soon.
2023-08-04 07:43:05 -07:00