From: John Benediktsson Date: Tue, 15 May 2012 00:04:52 +0000 (-0700) Subject: assocs.extras: adding deep-at. X-Git-Tag: 0.97~3068 X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=commitdiff_plain;h=9230acbbb8d74134ab9aaf9917f6d4b4349dcce3 assocs.extras: adding deep-at. --- diff --git a/extra/assocs/extras/extras-tests.factor b/extra/assocs/extras/extras-tests.factor new file mode 100644 index 0000000000..b70819b9fb --- /dev/null +++ b/extra/assocs/extras/extras-tests.factor @@ -0,0 +1,7 @@ + +USING: assocs.extras tools.test ; + +IN: assocs.extras + +{ f } [ H{ } { 1 2 3 } deep-at ] unit-test +{ 4 } [ H{ { 1 H{ { 2 H{ { 3 4 } } } } } } { 1 2 3 } deep-at ] unit-test diff --git a/extra/assocs/extras/extras.factor b/extra/assocs/extras/extras.factor index 8fd267cbc8..18b8478042 100644 --- a/extra/assocs/extras/extras.factor +++ b/extra/assocs/extras/extras.factor @@ -11,3 +11,5 @@ IN: assocs.extras : assoc-sift ( assoc -- assoc' ) [ nip ] assoc-filter ; inline +: deep-at ( assoc seq -- value/f ) + [ swap at ] each ;