From d6fb777e508aad4d7785515e99c7dd3fd45c69ef Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Fri, 14 Mar 2008 12:56:36 -0500 Subject: [PATCH] write a replace word and 2seq>assoc --- extra/assocs/lib/lib.factor | 5 ++++- extra/sequences/lib/lib.factor | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/extra/assocs/lib/lib.factor b/extra/assocs/lib/lib.factor index 88095759e6..d2eb42a117 100755 --- a/extra/assocs/lib/lib.factor +++ b/extra/assocs/lib/lib.factor @@ -1,4 +1,4 @@ -USING: assocs kernel vectors sequences namespaces ; +USING: arrays assocs kernel vectors sequences namespaces ; IN: assocs.lib : >set ( seq -- hash ) @@ -35,3 +35,6 @@ IN: assocs.lib [ with each ] curry assoc-each ; inline : insert ( value variable -- ) namespace insert-at ; + +: 2seq>assoc ( keys values exemplar -- assoc ) + >r 2array flip r> assoc-like ; diff --git a/extra/sequences/lib/lib.factor b/extra/sequences/lib/lib.factor index 050de0ae1c..fe0ee52ff4 100755 --- a/extra/sequences/lib/lib.factor +++ b/extra/sequences/lib/lib.factor @@ -3,7 +3,8 @@ ! See http://factorcode.org/license.txt for BSD license. USING: combinators.lib kernel sequences math namespaces assocs random sequences.private shuffle math.functions mirrors -arrays math.parser math.private sorting strings ascii macros ; +arrays math.parser math.private sorting strings ascii macros +assocs.lib ; IN: sequences.lib : each-withn ( seq quot n -- ) nwith each ; inline @@ -220,3 +221,6 @@ PRIVATE> : nths ( indices seq -- seq' ) [ swap nth ] with map ; + +: replace ( str oldseq newseq -- str' ) + H{ } 2seq>assoc [ dupd at* [ nip ] [ drop ] if ] curry map ;