Simon Forman
b2a1f40155
Fixed bug in appN
...
while updating some Jupyter notebooks with the Joypy kernel.
2022-09-16 20:49:46 -07:00
Simon Forman
6b07d7d30b
Minor cleanup
2022-09-14 09:46:31 -07:00
Simon Forman
aad2da35cf
divmod
...
We don't need floor if we have only ints.
Id is too easy as a definition.
divmod is cool.
2022-09-12 16:38:14 -07:00
Simon Forman
1e3b2f76bb
step, times
2022-09-12 16:07:21 -07:00
Simon Forman
8778f12b68
dipd, dipdd, cmp
2022-09-12 15:17:32 -07:00
Simon Forman
f640f437f1
cond
2022-09-12 13:50:40 -07:00
Simon Forman
a2cabe2189
Bringing over some of the "upgrades". 2
2022-09-11 14:07:55 -07:00
Simon Forman
4bd32f2c0b
Bringing over some of the "upgrades".
2022-09-11 13:57:19 -07:00
Simon Forman
cb553a1a65
id func
2022-09-11 11:46:10 -07:00
Simon Forman
a2cf184301
minor cleanup
2022-09-11 09:33:50 -07:00
Simon Forman
64946dc239
Put definitions in the docstring.
...
Why not? ¯\_(ツ)_/¯
2022-09-11 09:03:58 -07:00
Simon Forman
aea619953d
Model expr as stack-of-stacks, minor cleanup.
2022-09-11 08:57:45 -07:00
Simon Forman
16e6c77fa2
Don't bother to return the expression.
...
We mutate it instead of replacing it with new versions.
2022-09-10 17:42:38 -07:00
Simon Forman
4156da3511
Cleaner iteration of expression.
...
It's a destructive operation. It breaks functional purity (but it could
be made functional by using a stack instead of a list for the stack.)
There's no point to returning the expression object now because it's
being mutated by the prepend() method (rather than being replaced by new
forms.)
2022-09-10 17:37:07 -07:00
Simon Forman
15c143e3d1
over
...
This slipped through the cracks, eh? Should add a test to joytest.
2022-09-10 17:31:56 -07:00
Simon Forman
1032fc8e76
No point in a separate _parse() function.
2022-09-10 17:22:37 -07:00
Simon Forman
4fbe2ed4a0
Simpler tokenizer.
...
Once the syntax was simple enough the re.Scanner became overkill.
From
http://norvig.com/lispy.html
by way of
https://github.com/ckkashyap/s2c
2022-09-10 17:08:46 -07:00
Simon Forman
2ad303c247
A bit more docs.
2022-09-09 11:58:35 -07:00
Simon Forman
f2791c02c3
Move ParseError to parser section; add a few type guards.
2022-09-08 20:59:12 -07:00
Simon Forman
f08db94db1
Minor cleanup.
2022-09-08 14:25:02 -07:00
Simon Forman
359131f7b1
Expression objects.
...
This should be more efficient than concat().
2022-09-08 11:31:09 -07:00
Simon Forman
eecc983b99
blacken
2022-09-08 10:37:46 -07:00
Simon Forman
d7f047cee6
move stack code up under interp & minor edits
2022-09-08 09:06:26 -07:00
Simon Forman
20c4b90298
make type checks into Joy functions
2022-09-08 08:46:34 -07:00
Simon Forman
ebdb8da03d
move type checks and exceptions to bottom
2022-09-08 08:27:47 -07:00
Simon Forman
ac326590db
minor cleanup
2022-09-07 23:43:50 -07:00
Simon Forman
9bb31cbc8a
Minor cleanup.
2022-09-07 21:01:07 -07:00
Simon Forman
2c0a0aafcc
halt and quit
...
halt captures the rest of the pending expression and stops evaluating,
but the interpreter loop keeps running.
quit ends the interpreter session and quits the Thun program.
2022-09-07 20:42:48 -07:00
Simon Forman
08f977324f
Passes (updated) tests.
...
https://git.sr.ht/~sforman/joytest
2022-09-07 20:33:13 -07:00
Simon Forman
7594fb887f
Harden up the types.
2022-09-07 19:39:00 -07:00
Simon Forman
d7b445fdd4
Quiet mode for testing. Misc cleanup.
2022-09-07 17:27:36 -07:00
Simon Forman
660fdb0bef
Just put ≡ inline.
2022-09-07 14:46:26 -07:00
Simon Forman
88f3cc4bbe
Blacken the code.
2022-09-07 14:21:33 -07:00
Simon Forman
4f48ffbb5f
Type-guard the ops.
2022-09-07 14:18:55 -07:00
Simon Forman
67fd88f68a
Words and Help; use ≡ for definitions.
...
By using ≡ for definitions I can put docs in the DEFS string and easily
detect definitions by having them be each on their own line.
2022-09-07 13:13:46 -07:00
Simon Forman
29e6f160c6
It's a script.
2022-09-07 11:57:57 -07:00
Simon Forman
95366dde07
More docstrings.
2022-09-07 11:54:29 -07:00
Simon Forman
237f9bcfce
Docstrings.
2022-09-07 11:46:59 -07:00
Simon Forman
51664c5856
Pylint is kind useless on this one.
2022-09-07 11:18:08 -07:00
Simon Forman
acd0424287
Boolean literals.
2022-09-07 11:13:12 -07:00
Simon Forman
9fbcab6896
Docs (and strip trailing blanks.)
2022-09-07 10:42:20 -07:00
Simon Forman
be13b72d93
Blacken the code (simplejoy.py)
...
I don't like it entirely but that's the point: nevermind your taste,
just use a simple and universal (Ha!) standard format(ter) and get on
with your life.
2022-09-07 09:41:08 -07:00
Simon Forman
b386549226
Simple Joy
2022-09-07 09:23:02 -07:00