From 290aaa3dcdc6527a3dc85451f6e3fabdceb9d20f Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Sun, 7 Apr 2013 12:51:35 -0700 Subject: [PATCH] mirrors: implement keys/values. --- basis/mirrors/mirrors.factor | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/basis/mirrors/mirrors.factor b/basis/mirrors/mirrors.factor index 07b2945e69..2fd4f07ab0 100644 --- a/basis/mirrors/mirrors.factor +++ b/basis/mirrors/mirrors.factor @@ -44,6 +44,13 @@ M: mirror >alist ( mirror -- alist ) [ object>> [ swap slot ] curry ] bi map zip ; +M: mirror keys ( mirror -- keys ) + object-slots [ name>> ] map ; + +M: mirror values ( mirror -- values ) + [ object-slots [ offset>> ] map ] + [ object>> [ swap slot ] curry ] bi map ; + M: mirror assoc-size object>> layout-of second ; INSTANCE: mirror assoc