Commit Graph

44 Commits

Author SHA1 Message Date
Simon Forman df5ddb8ad9 Some trailing whitespace or something. 2019-08-09 09:28:15 -07:00
Simon Forman 84a2de7790 Tiny edits. Almost nothing. 2019-07-21 07:32:20 -07:00
Simon Forman c4c6ece6d2 Add bool function to mimic Python semantics. 2019-07-16 08:41:28 -07:00
Simon Forman 0359cd64c7 Very minor docs change. 2019-07-15 15:50:22 -07:00
Simon Forman b27adb7e1c Remove some trailing blankspace. 2018-11-28 13:00:03 -08:00
Simon Forman 3e6a49ac27 The version of Python with Anaconda is lightly newer. 2018-08-24 16:46:18 -07:00
Simon Forman c88e00ecd0 Add binary functions. 2018-08-02 14:22:42 -07:00
Simon Forman 4ed8422258 Load JOY_HOME/definitions.txt
You still can't edit other text files from within the UI, but at least
now you have a place to persist your own definitions over restarts.

I thought about having a [definitions] section in the config INI file,
but for some reason I prefer a separate definitions.txt file.  I dunno.
Might change it in future.
2018-07-22 11:50:34 -07:00
Simon Forman ca06c626e1 Loop and while combinators. 2018-07-20 12:33:06 -07:00
Simon Forman b89754a30b Futzing with types. 2018-07-19 15:37:35 -07:00
Simon Forman 008b74aef8 Getting back to parity after jumble.
Polytypes module folded into types module, with all the actual type
information done when you load the library module.  Some definitions can
be inferred from their body expression, others need to be
CombinatorJoyType wrapped.  Still to do: loop.
2018-07-19 15:18:42 -07:00
Simon Forman dea6cbc8c2 Working to get types right. 2018-07-19 12:38:19 -07:00
Simon Forman 6576e1a431 Fix TextJoyType inheritance. 2018-07-18 17:47:19 -07:00
Simon Forman 49941f9a33 Log types at startup. 2018-07-18 17:06:51 -07:00
Simon Forman 8ad4ab791b Removing polytypes; some pylint hints. 2018-07-18 14:55:39 -07:00
Simon Forman 7607ca7650 Definitions infer stack effects.
At start-up defs that DON'T type check are permitted (so you can use e.g.
loop, map, etc.) in the definitions "source", but then the user-facing
inscribe command only allows you to define new commands that DO
type-check.  The ideal solution here is to get inference working for the
loopy words.  (In the meantime you can select and execute their
definition text directly.  That's not (yet!) type-checked.)
2018-07-17 20:52:57 -07:00
Simon Forman c9f405fbe9 Nearly there maybe, maybe not. 2018-07-17 20:09:17 -07:00
Simon Forman 73d19b1f3d Moving right along.
A little clunky but it seems to work so far.
2018-07-17 17:12:27 -07:00
Simon Forman c2dd7cca0a So fra, so good... 2018-07-17 12:43:24 -07:00
Simon Forman 14d67dd7c5 in the middle, just want to 2ify my indents... 2018-07-17 10:47:50 -07:00
Simon Forman 0029656351 TextJoyType and inscribe command.
I took the plunge and added the meta-command "inscribe" to the library.
This is, of course, a very dangerous and powerful command.  Use it
wisely.
2018-07-17 10:35:11 -07:00
Simon Forman 043acd685c More stack effects, and modify the key bindings. 2018-07-16 18:43:40 -07:00
Simon Forman 0980d1b7c9 ifte as definition; "fork" combinator. 2018-07-11 07:10:54 -07:00
Simon Forman 531e215ffd Another definition for while. 2018-07-06 14:19:00 -07:00
Simon Forman ab8ec6c95d Minor cleanup.
Renamed update() to reify() and reinstated recursive substitution.
2018-07-04 10:37:43 -07:00
Simon Forman ab1f5227ba Hmm.
I think update() should be done better...
2018-06-30 12:59:14 -07:00
Simon Forman 4406a6620b Type inference of Joy expressions.
More remains to be done but it seems to work.
2018-06-29 13:19:12 -07:00
Simon Forman fc45727008 Minor cleanup. 2018-06-27 19:03:23 -07:00
Simon Forman ca05ea404a Bunches of new docs.
Type inference!

A new treatment of recursion combinator patterns.
2018-06-21 21:13:50 -07:00
Simon Forman 049cfd22b7 Elegant definitions for un-, bin-, tern-ary combinators. 2018-06-13 10:24:36 -07:00
Simon Forman 33f34dd15b Rename pushback() to concat(). 2018-06-13 10:17:46 -07:00
Simon Forman 507d045a3d Cleaning up docs. 2018-06-07 12:37:32 -07:00
Simon Forman c60d54d009 Minor docs edits. 2018-06-06 11:32:19 -07:00
Simon Forman 637d4efa6a Minor docs cleanup. 2018-06-06 11:20:31 -07:00
Simon Forman 37c34fc54f Added cond and cmp to library. 2018-06-06 07:56:24 -07:00
Simon Forman cfbd9a5182 ReST docs & library edits for Sphinx
Used Pandoc to convert the notebooks to rst format.  Used 2to3 to edit
the function signatures that were causing sphinx to error out.  Am I
really the only one who uses that syntax?
2018-04-24 22:07:21 -07:00
Simon Forman 669c86cbf1 Change project name to Thun.
I waited too long to upload to PyPI and some other bastard snagged the name.  I originally wanted to call it "Thun" as a tribute to Manfred von Thun, but I was concerned that this might seem to violate the thrid clause in the license of the original Joy code, to wit:

3. The name of the author may not be used to endorse or promote products  derived from this software without specific prior written permission.

Since the author is deceased I don't know of whom to ask permission to call this project Thun, but since I am not trying to "endorse or promote" this project with his name it should be alright.  In any event if anyone complains I can rename the project again.
2018-04-21 21:26:41 -07:00
Simon Forman a3c3709e4c Let the name of wrapped functions appear in tracebacks. 2018-04-21 15:37:19 -07:00
Simon Forman f7e78b6050 Switch to functions from classes for FunctionWrappers. 2018-04-21 15:20:46 -07:00
Simon Forman 4064ac1d23 When loading definitions ignore lines w/o "==". 2018-04-21 11:40:00 -07:00
Simon Forman 9805f479be Ignore build dir and pyc files. 2018-04-16 21:21:02 -07:00
Simon Forman 1e510de8ae Testing workflow.
Correcting a typo.
2018-04-16 12:43:28 -07:00
Simon Forman fac17ceb7c Bringing over some changes.
I need to harmonize my local repo and the OSDN repo.
2018-04-16 12:27:52 -07:00
Simon Forman beb7155b4a Initial move of code from git repo. 2018-04-14 18:13:13 -07:00