# HG changeset patch # User Steve Losh # Date 1494200480 0 # Node ID 94e507bedb6b68a579c9801937582c7d03fdcbe4 # Parent 6a26564cc9a8f4bd4483b8983a05f167f192c5b5 Add `anding` and `oring` iterate clauses diff -r 6a26564cc9a8 -r 94e507bedb6b DOCUMENTATION.markdown --- a/DOCUMENTATION.markdown Wed Apr 12 13:09:00 2017 +0000 +++ b/DOCUMENTATION.markdown Sun May 07 23:41:20 2017 +0000 @@ -805,7 +805,8 @@ ### `GNUPLOT` (function) - (GNUPLOT DATA &REST ARGS &KEY (X #'CAR) (Y #'CDR) &ALLOW-OTHER-KEYS) + (GNUPLOT DATA &REST ARGS &KEY (X #'CAR) (Y #'CDR) (SPEW-OUTPUT NIL) + &ALLOW-OTHER-KEYS) Plot `data` to `filename` with gnuplot. diff -r 6a26564cc9a8 -r 94e507bedb6b losh.lisp --- a/losh.lisp Wed Apr 12 13:09:00 2017 +0000 +++ b/losh.lisp Sun May 07 23:41:20 2017 +0000 @@ -1525,6 +1525,14 @@ (with ,hash-table = (make-hash-table :test ,test)) (setf (gethash ,key ,hash-table) ,value))))) +(defmacro-clause (ORING expr &optional INTO var) + (let ((result (or var iterate::*result-var*))) + `(reducing ,expr :by #'or :into ,var :initial-value nil))) + +(defmacro-clause (ANDING expr &optional INTO var) + (let ((result (or var iterate::*result-var*))) + `(reducing ,expr :by #'and :into ,var :initial-value t))) + (defun keywordize-clause (clause) (iterate diff -r 6a26564cc9a8 -r 94e507bedb6b package.lisp --- a/package.lisp Wed Apr 12 13:09:00 2017 +0000 +++ b/package.lisp Sun May 07 23:41:20 2017 +0000 @@ -156,6 +156,7 @@ (:export :across-flat-array + :anding :averaging :collect-hash :cycling @@ -170,6 +171,7 @@ :into :macroexpand-iterate :modulo + :oring :pairs-of-list :per-iteration-into :real-time