From 42fce2d4393f1a423897afbc2c6ca4a81ffe5da0 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Thu, 25 Aug 2022 10:10:32 -0400 Subject: [PATCH] sequences: fix `from` words --- basis/combinators/smart/smart.factor | 2 +- core/assocs/assocs.factor | 4 ++++ core/sequences/sequences.factor | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/basis/combinators/smart/smart.factor b/basis/combinators/smart/smart.factor index 8b597a58b4..28a09eb2bc 100644 --- a/basis/combinators/smart/smart.factor +++ b/basis/combinators/smart/smart.factor @@ -158,7 +158,7 @@ MACRO: smart-2map-reduce ( 2map-reduce-quots -- quot ) [ keys ] [ [ [ ] concat-as ] [ ] map-as ] bi dup length dup '[ [ [ first ] bi@ _ 2cleave ] 2keep [ @ _ [ cleave-curry ] [ cleave-curry ] bi _ spread* ] - 1 2each-from + 1 -roll 2each-from ] ; : smart-loop ( ..a quot: ( ..a -- ..b ? ) -- ..b ) diff --git a/core/assocs/assocs.factor b/core/assocs/assocs.factor index d3d870a94b..4d168127a9 100644 --- a/core/assocs/assocs.factor +++ b/core/assocs/assocs.factor @@ -211,12 +211,16 @@ M: assoc values [ nip ] { } assoc>map ; : at+ ( n key assoc -- ) [ 0 or + ] change-at ; inline +: at+* ( n key assoc -- old ) [ 0 or [ + ] keep swap ] change-at ; inline + : inc-at ( key assoc -- ) [ 1 ] 2dip at+ ; inline : of+ ( assoc key n -- assoc ) '[ 0 or _ + ] change-of ; inline : inc-of ( assoc key -- assoc ) 1 of+ ; inline +: inc-at* ( key assoc -- old ) [ 1 ] 2dip at+* ; inline + : map>assoc ( ... seq quot: ( ... elt -- ... key value ) exemplar -- ... assoc ) dup sequence? [ [ [ 2array ] compose ] dip map-as diff --git a/core/sequences/sequences.factor b/core/sequences/sequences.factor index 130513de13..4cebf8e263 100644 --- a/core/sequences/sequences.factor +++ b/core/sequences/sequences.factor @@ -602,8 +602,8 @@ PRIVATE> : 2each ( ... seq1 seq2 quot: ( ... elt1 elt2 -- ... ) -- ... ) 2length-operator each-integer ; inline -: 2each-from ( ... seq1 seq2 quot: ( ... elt1 elt2 -- ... ) i -- ... ) - [ 2length-operator ] dip -rot each-integer-from ; inline +: 2each-from ( ... from seq1 seq2 quot: ( ... elt1 elt2 -- ... ) -- ... ) + 2length-operator each-integer-from ; inline : 2reduce ( ... seq1 seq2 identity quot: ( ... prev elt1 elt2 -- ... next ) -- ... result ) -rotd 2each ; inline -- 2.34.1