From c9fd44502c7ef93187362bd79185e36ffa1d6a55 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Sun, 23 Jul 2017 15:18:14 -0500 Subject: [PATCH] slots.macros: Refactor {word-names}. --- extra/slots/macros/macros-tests.factor | 4 ++-- extra/slots/macros/macros.factor | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/extra/slots/macros/macros-tests.factor b/extra/slots/macros/macros-tests.factor index 46ca59d8a5..345cd4da89 100644 --- a/extra/slots/macros/macros-tests.factor +++ b/extra/slots/macros/macros-tests.factor @@ -58,7 +58,7 @@ TUPLE: foo a b c ; { { 2 1 3 } } [ T{ foo { a 1 } { b 2 } { c 3 } } - { "b" "a" "c" } {slots} + { "b" "a" "c" } slots>array ] unit-test { T{ foo { a "one" } { b "two" } { c "three" } } } [ @@ -70,5 +70,5 @@ TUPLE: foo a b c ; { T{ foo { a "one" } { b "two" } { c "three" } } } [ { "two" "one" "three" } T{ foo { a 1 } { b 2 } { c 3 } } clone - [ { "b" "a" "c" } {set-slots} ] keep + [ { "b" "a" "c" } array>set-slots ] keep ] unit-test diff --git a/extra/slots/macros/macros.factor b/extra/slots/macros/macros.factor index cedccade7b..7b2d8a1871 100644 --- a/extra/slots/macros/macros.factor +++ b/extra/slots/macros/macros.factor @@ -44,12 +44,12 @@ MACRO: set-slot ( name -- quot: ( value tuple -- ) ) MACRO: slots ( names -- quot: ( tuple -- values... ) ) [ '[ _ slot ] ] { } map-as '[ _ cleave ] ; -MACRO: {slots} ( names -- quot: ( tuple -- {values} ) ) +MACRO: slots>array ( names -- quot: ( tuple -- values ) ) dup length '[ _ slots _ narray ] ; MACRO: set-slots ( names -- quot: ( values... tuple -- ) ) [ [ '[ _ set-slot ] ] [ ] map-as ] [ length dup ] bi '[ @ _ cleave-curry _ spread* ] ; -MACRO: {set-slots} ( names -- quot: ( {values} tuple -- ) ) +MACRO: array>set-slots ( names -- quot: ( values tuple -- ) ) [ length ] keep '[ [ _ firstn ] dip _ set-slots ] ;