Simon Forman
7a4e58fe15
Copyright notices.
2019-08-11 19:41:11 -07:00
Simon Forman
afec650c7b
The sqrt/1 predicate wasn't working.
2019-08-11 19:35:05 -07:00
Simon Forman
79aa2f972d
Multifile func/3.
2019-08-11 18:45:57 -07:00
Simon Forman
cd60816429
Build math & comparision functions.
2019-08-11 17:48:29 -07:00
Simon Forman
ab454375c0
Clean up REPL formatting.
2019-08-11 17:00:38 -07:00
Simon Forman
4d33f32674
Don't shadow funcs and combos.
2019-08-11 15:12:56 -07:00
Simon Forman
adf0e96f84
Don't shadow funcs & combos.
2019-08-11 14:56:20 -07:00
Simon Forman
9e180e8173
Extract mainloop to own file.
2019-08-11 14:51:13 -07:00
Simon Forman
6bc1b5ec8b
Use double-quoted string for codes.
2019-08-10 22:21:57 -07:00
Simon Forman
f6705f3fa0
cleanup old files
2019-08-10 22:07:17 -07:00
Simon Forman
e49b0b70cb
Build defs.pl from defs.txt.
2019-08-10 22:03:44 -07:00
Simon Forman
90bccece6a
build defs.pl
2019-08-10 21:46:48 -07:00
Simon Forman
731c59088e
build defs.pl
2019-08-10 21:45:59 -07:00
Simon Forman
32e77f6d73
Move parser to own file.
2019-08-10 20:57:11 -07:00
Simon Forman
3af9e7e174
map combo
2019-08-10 20:42:48 -07:00
Simon Forman
c8c1df8d88
Bring in funcs and combos.
2019-08-10 20:12:41 -07:00
Simon Forman
ab587beaa9
Omit Prolog toplevel.
2019-08-10 20:06:12 -07:00
Simon Forman
dc5737eb45
Do not need thses files.
2019-08-10 20:03:52 -07:00
Simon Forman
1d31ca99c3
Fold in parser, main loop, and support.
2019-08-10 19:57:00 -07:00
Simon Forman
fd5f54992a
Rename foo to thun.
2019-08-10 19:25:48 -07:00
Simon Forman
1ce9544bcc
Make a version for GNU Prolog compiler.
2019-08-10 12:19:09 -07:00
Simon Forman
10a23c5c68
Also don't shadow combinators.
...
(I realized that the way defs are parsed now means that each def
(but the last) is first asserted with the wrong definition expression
(it includes the symbol of the following definition at the end) and
then the parser figures out that there's another defintion following
and re-asserts the correct expression. It would be nice to fix that
but it's kind of a PITA. I used to build a list of definitions and
then assert them all at the end. For now there aren't enough defs to
justify the extra work.
2019-08-09 16:58:34 -07:00
Simon Forman
cbf2af18e5
Prevent definitions from shadowing functions.
2019-08-09 16:53:40 -07:00
Simon Forman
49491bceef
Demo grow/shrink.
2019-08-09 16:37:33 -07:00
Simon Forman
df5ddb8ad9
Some trailing whitespace or something.
2019-08-09 09:28:15 -07:00
Simon Forman
b9ae00cecb
A few more functions.
...
reverse, shift, shunt, take, split_at
2019-08-09 07:26:37 -07:00
Simon Forman
712f0a0267
merge
2019-08-07 23:36:38 -07:00
Simon Forman
976b8302be
grow/shrink as DCGs.
2019-08-07 23:28:28 -07:00
Simon Forman
4ea77cf1be
Integer DCGs that work in both directions.
2019-08-07 11:40:49 -07:00
Simon Forman
0048ee212d
loop combinator handles ambiguity.
...
remove some old notes.
2019-08-04 09:28:01 -07:00
Simon Forman
a3f863ff18
Move is_numerical() to joy.gui.utils.
2019-08-03 19:02:24 -07:00
Simon Forman
177d6cd433
Experiment in formatting stacks for output.
...
Tracing, sort of...
2019-08-03 19:01:45 -07:00
Simon Forman
3b1a89d1c4
Minor refactor.
...
crbo/4 to to_fixed_point/3
2019-08-03 19:01:00 -07:00
Simon Forman
cb0078f3bc
Gnarly fun with metaprogramming.
2019-08-03 17:56:25 -07:00
Simon Forman
6a94c12b9b
Get the path separator right on windows.
...
It used to use: C:\Users\sforman/.joypy
which worked, but ew.
2019-08-02 18:30:43 -07:00
Simon Forman
2ba9242b76
Comparisions are literals too.
...
Also a bunch of reformatting.
Maybe I can modify the term_expansion/2 to also write the literal/1 clauses for math and comps?
2019-07-22 10:25:34 -07:00
Simon Forman
97a99ac3c4
Bits of formatting.
2019-07-22 10:04:32 -07:00
Simon Forman
df94c8feed
Minor cleanup.
2019-07-21 18:48:11 -07:00
Simon Forman
66d8a3be47
Remove write_state/5.
2019-07-21 17:56:34 -07:00
Simon Forman
6818abb3ce
Build a list of the moves taken.
2019-07-21 17:55:19 -07:00
Simon Forman
523cb3913b
Refactor a bit.
2019-07-21 17:25:22 -07:00
Simon Forman
c1442945a6
Assert definitions as they are read.
...
Instead of building a list then asserting them all after parsing.
2019-07-21 14:13:48 -07:00
Simon Forman
482ac3023e
Messing with TLA+ in Prolog.
2019-07-21 11:50:27 -07:00
Simon Forman
32d5953f29
Implement map combinator.
2019-07-21 08:28:56 -07:00
Simon Forman
84a2de7790
Tiny edits. Almost nothing.
2019-07-21 07:32:20 -07:00
Simon Forman
1b5d1c0b82
Remove cuts from branch combinator.
2019-07-20 19:34:56 -07:00
Simon Forman
206f49598e
Add mod, gcd, and hypot; term_expansion for math ops.
2019-07-20 19:26:11 -07:00
Simon Forman
ae769d2341
Fold try_both_branches/4 into branch combo.
2019-07-20 17:36:58 -07:00
Simon Forman
230288c02c
Replace ? with plain ol' def/2.
...
As much fun as it was using ? as an operator, now that all the defs live in a text file you don't see it in the Prolog code anymore.
This way I get to use sweet sweet ASCII (except for the ? symbol in the copyright notice.)
2019-07-20 17:32:03 -07:00
Simon Forman
7354911d05
WTF error handler.
...
Made it check that the unknown term really isn't a literal, definition, function, or combinator.
2019-07-20 17:19:35 -07:00