Commit Graph

1243 Commits

Author SHA1 Message Date
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