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 ;