Commit Graph

500 Commits

Author SHA1 Message Date
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 506b40bba4 min and max 2023-10-09 13:04:16 -07:00
sforman da0e1e685e Derive `zip`. 2023-10-09 11:45:28 -07:00
sforman 787dc6a7b3 Nerd Sniped 2023-10-09 11:44:13 -07:00
sforman 04d3e96a99 Great progress! 2023-10-08 20:17:02 -07:00
sforman eb665f2b50 More work on Ref doc, & stuff. 2023-10-08 17:58:22 -07:00
sforman d833f1a3e9 Implement `bool` and trace for Scheme. 2023-10-08 17:57:05 -07:00
sforman 4821ea0ee2 Take the right number of things off of the stack. 2023-10-08 13:08:34 -07:00
sforman 0e380b7748 Div, mod handle zero. 2023-09-23 21:20:37 -07:00
sforman 20b5f05d29 Elm reformatting and demo HTML page. 2023-09-23 09:37:43 -07:00
sforman 16cc0e5769 Change definition of uncons. 2023-09-18 11:26:50 -07:00
sforman 68488cc9d2 Elm version using BigNums.
This went pretty smoothly, I just followed the compiler errors after
substituting Integer for Int in the type definition.

The only tricky thing is that the div and mod functions for Integer
return Maybe Integer rather than just Integer, so I need to wrap those
or something?  (For now I just put in add to get it to compile.)

Oh, and "not equal" is not correct? The compiler didn't complain.
2023-09-02 11:30:18 -07:00
sforman 10c1d6ccde Let's use bignums. 2023-09-02 11:11:42 -07:00
sforman 4f27f3305f Don't use andThen.
It's less clear than spelling it all out.
2023-09-02 09:44:57 -07:00
sforman b65e948cce Chaining with andThen works but is ugly.
It's lees clear to me what's going on, and I wrote it.
2023-09-02 09:38:15 -07:00
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 6674fdffb6 Better exceptions. 2023-08-28 20:46:19 -07:00
sforman a107e1df6c Rebuilt C interpreter. 2023-08-21 09:53:24 -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 20b517f083 Figlet headings. 2023-08-18 16:59:32 -07:00
sforman 307a421fab Add definition for xor. 2023-08-16 10:05:30 -07:00
sforman 60bddcc70e cleanup 2023-08-13 08:49:20 -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 8bbbd2a4a4 Update defs.scm 2023-08-12 08:26:59 -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