From ba0c24c39b892ac903134ca4b14d9450b3489f59 Mon Sep 17 00:00:00 2001 From: Simon Forman Date: Wed, 20 May 2020 15:34:30 -0700 Subject: [PATCH] Minor cleanup. --- docs/Newton-Raphson.ipynb | 20 ++++++++++---------- docs/notebook_preamble.py | 6 +++--- joy/joy.py | 5 ++--- joy/utils/pretty_print.py | 25 ++++++++++++------------- 4 files changed, 27 insertions(+), 29 deletions(-) diff --git a/docs/Newton-Raphson.ipynb b/docs/Newton-Raphson.ipynb index 742a966..c0892b1 100644 --- a/docs/Newton-Raphson.ipynb +++ b/docs/Newton-Raphson.ipynb @@ -92,7 +92,7 @@ }, "outputs": [], "source": [ - "define('gsra == 1 swap [over / + 2 /] cons [dup] swoncat make_generator')" + "define('gsra 1 swap [over / + 2 /] cons [dup] swoncat make_generator')" ] }, { @@ -182,7 +182,7 @@ "metadata": {}, "outputs": [], "source": [ - "define('_within_P == [first - abs] dip <=')" + "define('_within_P [first - abs] dip <=')" ] }, { @@ -203,7 +203,7 @@ "metadata": {}, "outputs": [], "source": [ - "define('_within_B == roll< popop first')" + "define('_within_B roll< popop first')" ] }, { @@ -216,7 +216,7 @@ "\n", "1. Discard a.\n", "2. Use `x` combinator to generate next term from `G`.\n", - "3. Run `within` with `i` (it is a `primrec` function.)\n", + "3. Run `within` with `i` (it is a \"tail-recursive\" function.)\n", "\n", "Pretty straightforward:\n", "\n", @@ -236,7 +236,7 @@ "metadata": {}, "outputs": [], "source": [ - "define('_within_R == [popd x] dip')" + "define('_within_R [popd x] dip')" ] }, { @@ -257,8 +257,8 @@ "metadata": {}, "outputs": [], "source": [ - "define('within == x 0.000000001 [_within_P] [_within_B] [_within_R] primrec')\n", - "define('sqrt == gsra within')" + "define('within x 0.000000001 [_within_P] [_within_B] [_within_R] tailrec')\n", + "define('sqrt gsra within')" ] }, { @@ -367,14 +367,14 @@ "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.12" + "pygments_lexer": "ipython3", + "version": "3.8.3" } }, "nbformat": 4, diff --git a/docs/notebook_preamble.py b/docs/notebook_preamble.py index bd1e220..25dbc5f 100644 --- a/docs/notebook_preamble.py +++ b/docs/notebook_preamble.py @@ -29,7 +29,7 @@ S = () def J(text, stack=S, dictionary=D): - print stack_to_string(run(text, stack, dictionary)[0]) + print(stack_to_string(run(text, stack, dictionary)[0])) def V(text, stack=S, dictionary=D): @@ -39,8 +39,8 @@ def V(text, stack=S, dictionary=D): except: exc = format_exc() tp.print_() - print '-' * 73 - print exc + print('-' * 73) + print(exc) else: tp.print_() diff --git a/joy/joy.py b/joy/joy.py index 6a47a1b..e801ee7 100644 --- a/joy/joy.py +++ b/joy/joy.py @@ -25,7 +25,7 @@ match the behaviour of the original version(s) written in C. ''' from __future__ import print_function from builtins import input -from traceback import print_exc, format_exc +from traceback import print_exc from .parser import text_to_expression, ParseError, Symbol from .utils.stack import stack_to_string @@ -103,8 +103,7 @@ def repl(stack=(), dictionary=None): try: stack, _, dictionary = run(text, stack, dictionary) except: - exc = format_exc() # Capture the exception. - print(exc) # Print the original exception. + print_exc() except: print_exc() print() diff --git a/joy/utils/pretty_print.py b/joy/utils/pretty_print.py index 217e294..83e2877 100644 --- a/joy/utils/pretty_print.py +++ b/joy/utils/pretty_print.py @@ -20,22 +20,21 @@ ''' Pretty printing support, e.g.:: - Joy? 23 18 * 99 + - . 23 18 mul 99 add - 23 . 18 mul 99 add - 23 18 . mul 99 add - 414 . 99 add - 414 99 . add - 513 . + Joy? [23 18 * 99 +] trace + • 23 18 mul 99 add + 23 • 18 mul 99 add + 23 18 • mul 99 add + 414 • 99 add + 414 99 • add + 513 • 513 <-top joy? -On each line the stack is printed with the top to the right, then a ``.`` to -represent the current locus of processing, then the pending expression to the -left. - +On each line the stack is printed with the top to the left, then a +bullet symbol,``•``, to represent the current locus of processing, then +the pending expression to the right. ''' # (Kinda clunky and hacky. This should be swapped out in favor of much # smarter stuff.) @@ -114,8 +113,8 @@ class TracePrinter(object): n = len(stack) if n > max_stack_length: max_stack_length = n - lines.append((n, '%s . %s' % (stack, expression))) - return [ # Prefix spaces to line up '.'s. + lines.append((n, '%s • %s' % (stack, expression))) + return [ # Prefix spaces to line up '•'s. (' ' * (max_stack_length - length) + line) for length, line in lines ] -- 2.11.0