# HG changeset patch # User Steve Losh # Date 1479726649 0 # Node ID 344ee2fa239eacd3223b83e1a58f763058c618c6 # Parent 21296e2bf834566ba689991088225220eb1142cd Add `prl` diff -r 21296e2bf834 -r 344ee2fa239e DOCUMENTATION.markdown --- a/DOCUMENTATION.markdown Thu Nov 17 12:44:46 2016 +0000 +++ b/DOCUMENTATION.markdown Mon Nov 21 11:10:49 2016 +0000 @@ -339,6 +339,28 @@ +### `PRL` (macro) + + (PRL &REST ARGS) + +Print `args` labeled and readably. + + Each argument form will be printed, then evaluated and the result printed. + One final newline will be printed after everything. + + Returns the last result. + + Examples: + + (let ((i 1) + (l (list 1 2 3))) + (prl i (second l))) + ; => + i 1 + (second l) 2 + + + ### `SHUT-UP` (macro) (SHUT-UP diff -r 21296e2bf834 -r 344ee2fa239e losh.lisp --- a/losh.lisp Thu Nov 17 12:44:46 2016 +0000 +++ b/losh.lisp Mon Nov 21 11:10:49 2016 +0000 @@ -1342,6 +1342,30 @@ (finish-output) (first args)) +(defmacro prl (&rest args) + "Print `args` labeled and readably. + + Each argument form will be printed, then evaluated and the result printed. + One final newline will be printed after everything. + + Returns the last result. + + Examples: + + (let ((i 1) + (l (list 1 2 3))) + (prl i (second l))) + ; => + i 1 + (second l) 2 + + " + `(prog1 + (progn ,@(mapcar (lambda (arg) `(pr ',arg ,arg)) args)) + (terpri) + (finish-output))) + + (defun bits (n size &optional (stream t)) "Print the bits of the `size`-bit two's complement integer `n` to `stream`. diff -r 21296e2bf834 -r 344ee2fa239e package.lisp --- a/package.lisp Thu Nov 17 12:44:46 2016 +0000 +++ b/package.lisp Mon Nov 21 11:10:49 2016 +0000 @@ -159,6 +159,7 @@ (:documentation "Utilities for figuring out what the hell is going on.") (:export :pr + :prl :bits :shut-up :dis