sforman
e956e177f6
Rebuilt C.
2023-08-30 19:57:57 -07:00
sforman
18adfa2205
Compiling Thun to Python.
...
Not all of the words that compiled with the old defs.txt compiled with
the latest, so we're keeping the old one in here until I can trace down
the issues.
2023-08-30 18:54:49 -07:00
sforman
9c4ecb085b
pow
2023-08-30 18:52:26 -07:00
sforman
35097d90a9
Update Nim defs.txt.
2023-08-30 18:46:51 -07:00
sforman
47275cf1f1
Simple linear power function.
2023-08-30 18:44:55 -07:00
sforman
fb8faf917d
THe old compiler-to-Python.
2023-08-30 16:57:48 -07:00
sforman
38a9b93488
Rename BigNums.
2023-08-30 10:42:29 -07:00
sforman
58ca23c889
Add a README to the docs/ dir.
2023-08-30 07:26:47 -07:00
sforman
863d0698b5
Test calling dip on non-quote.
2023-08-30 07:25:11 -07:00
sforman
1c3a00e4a6
I just realized these all refer to the old package organization.
2023-08-29 06:12:51 -07:00
sforman
6674fdffb6
Better exceptions.
2023-08-28 20:46:19 -07:00
sforman
7285ebb8da
Example of infra evaluation.
2023-08-26 10:56:29 -07:00
sforman
2482636d9b
Note on Variations
2023-08-26 10:56:21 -07:00
sforman
53ad9eb5e7
Minor edits.
2023-08-21 17:58:47 -07:00
sforman
a107e1df6c
Rebuilt C interpreter.
2023-08-21 09:53:24 -07:00
sforman
9998e7947b
Finished up Generator_Programs.md
2023-08-20 17:21:49 -07:00
sforman
8dfcbca2a8
README for Chicken Scheme.
2023-08-20 10:24:29 -07:00
sforman
5edf0797b4
sort
2023-08-18 17:09:08 -07:00
sforman
3c3b156169
Some scratch source
...
from editing BigNums notebook.
2023-08-18 17:00:13 -07:00
sforman
20b517f083
Figlet headings.
2023-08-18 16:59:32 -07:00
sforman
ef9f7f2c0e
Minor CSS changes.
2023-08-18 16:58:25 -07:00
sforman
805ec23e11
Edits on BigNums notebook.
2023-08-18 16:57:54 -07:00
sforman
99435490d0
About 2/5ths done.
2023-08-17 12:09:23 -07:00
sforman
307a421fab
Add definition for xor.
2023-08-16 10:05:30 -07:00
sforman
387d9d4ed4
Working on the notebooks.
2023-08-16 10:04:52 -07:00
sforman
7d8e2ae611
Updating notebooks
...
to not use Jupyter because I can't figure out how to use the Joy kernel.
2023-08-14 09:18:04 -07:00
sforman
70aa2ef5e9
Working on the website for Thun.
...
I'm going to eventually update the old Sphinx-generated site on OSDN.
2023-08-13 14:30:57 -07:00
sforman
60bddcc70e
cleanup
2023-08-13 08:49:20 -07:00
sforman
4fe3857eb9
Put this over there.
2023-08-13 08:48:06 -07:00
sforman
1f5bea98b6
Minor edits.
2023-08-13 08:47:16 -07:00
sforman
9f78b6d8fd
Messing around with type inference.
...
What if we insist that both branches of a branch have compatible types?
For one thing `[+] [* +] branch` leads to a circular term which, when
printed, goes into a loop: "int,int,int,...". Hmm...
2023-08-12 16:45:59 -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
eafa3d45ac
Minor edit.
2023-08-12 12:55:25 -07:00
sforman
c01b107541
Little updates to the spec doc.
2023-08-12 10:36:19 -07:00
sforman
6ed3a770fb
Minor edits.
2023-08-12 08:40:55 -07:00
sforman
8bbbd2a4a4
Update defs.scm
2023-08-12 08:26:59 -07:00
sforman
69689f8cc6
Merge in the test suite.
...
Why not?
(I have a slow tide, expand into pieces, contract into units, and back
again. This is part of a contract and unify phase.)
2023-08-12 08:19:54 -07:00
sforman
00f4bfcacd
Math ops, definitions for left- and right-shift.
2023-08-12 08:04:21 -07:00
sforman
99f01bec1f
mul div mod add sub in Nim
2023-08-12 07:54:33 -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
a15ea2d355
It's more efficient to concat the empty list
...
than to concate a non-empty list onto the empty list.
2023-08-10 21:45:40 -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
sforman
0503dc2fbe
Parser.
2023-08-04 00:33:11 -07:00
sforman
0122c4f249
Scheme, eh?
2023-08-03 11:28:46 -07:00
sforman
97602ade8d
SWIProlog can't not emit '.'.
...
I would like the GNU Prolog and SWI Prolog versions to be compatible, if
possible.
SWI has bigints, GNU doesn't, so that's a wrinkle...
2023-08-02 22:38:04 -07:00
sforman
ee4c3bc9b6
Thread the dict through the interaction loop.
...
Like a total newbie I put the call to the interpreter in the view
function instead of the update function! I thought it was weird having
to specify the HTML twice, but I figured I was just doing it wrong. I
was, but not in the way I suspected.
In any event, I like how this make it clear that errors can't affect the
dictionary.
2023-08-02 21:19:43 -07:00
sforman
2fe886afba
Checked old defs.
...
I forgot `over`!
2023-08-02 19:37:36 -07:00
sforman
be87d2c09d
Talk about symbols on the stack.
2023-08-02 19:08:42 -07:00
sforman
e7ac46fd7b
A spec doc for Thun.
...
It's not very good yet, or formal, "but it's mine and I love it."
2023-08-02 18:52:31 -07:00
sforman
5585ae5d31
_isnt_bool _isnt_two_bools
...
These probably won't last?
2023-08-02 09:06:11 -07:00
sforman
f15eef1c56
minor edits
2023-07-31 12:08:39 -07:00
sforman
45f00c8f2e
Elm README.
...
And minor edits.
2023-07-31 11:30:12 -07:00
sforman
ac286a283f
minor edits
2023-07-31 11:22:44 -07:00
sforman
d796b78a6f
minor edits
2023-07-31 11:17:05 -07:00
sforman
5b8a430d1d
minor edits
2023-07-31 11:06:13 -07:00
sforman
b3a0bac5a7
Oops, that is not a definition of first.
2023-07-31 10:44:38 -07:00
sforman
443beb2ab4
Minor edits.
2023-07-31 10:36:53 -07:00
sforman
fecd3e1d02
Minor edits.
2023-07-30 16:34:56 -07:00
sforman
72c325c1f2
I think I have got it.
2023-07-30 16:16:51 -07:00
sforman
d285d13290
egad
2023-07-30 16:14:52 -07:00
sforman
e9cee15c64
weird symbols in table
2023-07-30 16:03:17 -07:00
sforman
c23a3a5317
mdtableeeeee
2023-07-30 16:01:09 -07:00
sforman
a38fc62074
MD TABLE!?
2023-07-30 15:54:07 -07:00
sforman
540bdd97bd
Sort out the and/or/... ops.
2023-07-30 15:51:29 -07:00
sforman
c0fa319c9c
Crude type checking.
...
I forget why I was doing "not not" so I made it a little more clear. In
practice this is regressive: The built-in "isnt_bool" function should
be in the dictionary? Or prohibit type checking and let the bugs flow?
Rely on inference to prevent bugs that would pass the non-checking
versions of the functions? Hmm...
2023-07-30 15:42:55 -07:00
sforman
373666bf39
Name Boolean ops.
...
So they don't overshadow the defs for the short-circuiting combinators.
2023-07-30 15:41:58 -07:00
sforman
1089ab7c24
Error type (not just a string.)
...
This is mostly for fun, but I bet it comes in handy, eh?
At the very least, it's a nice catalog of the possible errors that the
basic Joy system might encounter.
2023-07-30 14:59:09 -07:00
sforman
850bc3a500
type alias JoyFunction
2023-07-30 14:27:27 -07:00
sforman
64d9bb75a4
Format.
2023-07-30 07:47:26 -07:00
sforman
9963a73322
inscribe, definitions.
2023-07-30 07:45:06 -07:00
sforman
200c390fd5
Initialize dict with defs.
...
Just sqr for now, but it shows that it works.
I would like to return Results from add_def but it makes using foldl
slightly tricky, not a lot, just slightly, and my brainpower is low at
the mo'.
2023-07-29 17:10:45 -07:00
sforman
edfd7c526f
Look up words in the dictionary.
...
If they are not built-in, which means you can't "shadow" built-ins with
"inscribe", which may or may not turn out to be what we want?
2023-07-29 12:35:47 -07:00
sforman
4acdec71ed
Thread the dictionary through the call stack.
2023-07-29 12:30:22 -07:00
sforman
4d6230e01d
Empty string is not an unknown word.
2023-07-29 12:11:43 -07:00
sforman
9220361871
Gotta keep a Dict around.
2023-07-29 12:09:08 -07:00
sforman
b1d4c3c5b8
Logical ops.
2023-07-29 11:37:07 -07:00
sforman
2c9d5cf4bf
Left- and Right-shift.
2023-07-29 11:32:22 -07:00
sforman
a69b988684
Comparison ops.
2023-07-29 11:07:50 -07:00