From 30aa1bf38345c6a0516f9427c717bb5a4a9d7ea0 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Mon, 25 Jul 2022 09:14:10 -0500 Subject: [PATCH] assocs: assoc-stack-from --- basis/bootstrap/compiler/compiler.factor | 2 +- core/assocs/assocs.factor | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/basis/bootstrap/compiler/compiler.factor b/basis/bootstrap/compiler/compiler.factor index 69615c7e7f..4d10ced59c 100644 --- a/basis/bootstrap/compiler/compiler.factor +++ b/basis/bootstrap/compiler/compiler.factor @@ -83,7 +83,7 @@ gc "." write flush { - hashcode* = equal? assoc-stack search-assoc-stack get set + hashcode* = equal? assoc-stack assoc-stack-from get set } compile-unoptimized "." write flush diff --git a/core/assocs/assocs.factor b/core/assocs/assocs.factor index 8007cd95c6..2f661e7481 100644 --- a/core/assocs/assocs.factor +++ b/core/assocs/assocs.factor @@ -33,12 +33,12 @@ M: assoc assoc-like drop ; inline : assoc-operator ( assoc quot -- alist quot' ) [ >alist ] dip [ first2 ] prepose ; inline -: search-assoc-stack ( key i seq -- value/f ) +: assoc-stack-from ( key i seq -- value/f ) over 0 < [ 3drop f ] [ 3dup nth-unsafe at* - [ 3nip ] [ drop [ 1 - ] dip search-assoc-stack ] if + [ 3nip ] [ drop [ 1 - ] dip assoc-stack-from ] if ] if ; inline recursive : search-alist ( key alist -- pair/f i/f ) @@ -142,7 +142,7 @@ M: assoc values [ nip ] { } assoc>map ; assoc-size 0 = ; inline : assoc-stack ( key seq -- value ) - [ length 1 - ] keep search-assoc-stack ; flushable + [ length 1 - ] keep assoc-stack-from ; flushable : assoc-subset? ( assoc1 assoc2 -- ? ) [ at* [ = ] [ 2drop f ] if ] with-assoc assoc-all? ; -- 2.34.1