Commit Graph

1236 Commits

Author SHA1 Message Date
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
sforman 36dc5b619f loop 2023-07-29 10:44:51 -07:00
sforman 8fb48008cd branch 2023-07-29 10:38:12 -07:00
sforman ed8f8f9edf dip 2023-07-29 10:28:31 -07:00
sforman 9c381f0e8f i 2023-07-29 10:23:06 -07:00
sforman 99a5fd93b1 truthy
I have to check into this: the Python version has "bool" and no
"truthy".
2023-07-29 10:19:39 -07:00
sforman 7c9ea764ea swap 2023-07-29 10:09:40 -07:00
sforman fcdf916013 stack, swaack 2023-07-29 10:00:16 -07:00
sforman c50f2a7541 pop 2023-07-29 09:55:28 -07:00
sforman 4a0fce2492 first, rest 2023-07-29 09:53:00 -07:00
sforman b50be3b64b dup 2023-07-29 09:22:26 -07:00
sforman eb8b282bc2 cons 2023-07-29 09:17:27 -07:00
sforman 70c5223319 clear, concat 2023-07-29 09:06:14 -07:00
sforman af882e2be4 Minor cleanup. 2023-07-29 08:57:58 -07:00
sforman e9f971460f Type alias JList 2023-07-29 08:49:31 -07:00
sforman 9917a2cfba Refactor pop_int.
I don't like passing the stack through isnt_int but that let's you chain
with andThen.

There's probably a clever or idiomatic way to not do that and couple the
stack to the result without passing it through the type checker function
but I don't know what it is right now, and this works.
2023-07-29 07:51:31 -07:00
sforman b6b3acf350 Binary Math Ops 2023-07-29 07:32:56 -07:00
sforman dc065d1943 I don't think andThen helps here? 2023-07-29 07:19:08 -07:00
sforman 48f6e78196 I can add integers! 2023-07-29 06:54:15 -07:00
sforman 5315edbe83 Parsing working.
Modeled on the OCaml code.
2023-07-28 21:51:34 -07:00
sforman 9d57545533 A start on Joy types. 2023-07-28 15:04:35 -07:00
sforman 590a5b207c In Elm. 2023-07-28 14:18:12 -07:00
sforman 23504f6ede Use Python as SHELL in Makefile.
It's a simple task, but I'm not up on my CLI tools, so I went with
Python instead of sh.  The split command doesn't have '-p' switch on
Ubuntu.  (I'm using Ubuntu on this laptop because it can correctly
configure the WiFi and the laptop has no ethernet port.)
2023-07-27 10:32:45 -07:00
sforman f60c138a2c minor cleanup 2023-07-27 09:55:26 -07:00
sforman 08262ac861 minor cleanup 2023-07-27 09:55:02 -07:00
sforman ef504aa1c4 Rename joy_to_ast to parser. 2023-07-27 09:19:12 -07:00
sforman 0a1b150eb5 Working on the docs.
The nbconvert tool has different behaviour now, so the HTML versions of
the notebooks look different.
2023-07-27 08:55:43 -07:00
sforman 9ca9239738 Minor work on the new site.
I'm moving away from OSDN, there have been a few technical issues
recently.
2023-07-26 20:47:57 -07:00
sforman ae9da29921 Bold. 2023-07-26 16:34:03 -07:00
sforman 33fe5c688b Minor edits. 2023-07-26 16:32:30 -07:00
sforman 3f9f558ebb the BinInt zero vanished? 2023-07-25 22:01:55 -07:00
sforman bc5af441dc Minor edits. 2023-07-25 21:46:36 -07:00
sforman ced691279a Working on README, put defs in joy.py
I'm on an Ubuntu system right now and the split command doesn't have the
'-p' switch.  :(   I wasn't happy with that janky solution anyway.
2023-07-25 21:13:35 -07:00
sforman 975924f632 minor edits 2023-07-25 20:03:11 -07:00
sforman 18b5d5b497 Minor edits. 2023-07-25 10:04:45 -07:00