]> gitweb.factorcode.org Git - factor.git/commitdiff
classes.tuple: refactor out make-tuple for re-use.
authorJohn Benediktsson <mrjbq7@gmail.com>
Tue, 3 Nov 2020 21:09:50 +0000 (13:09 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Tue, 3 Nov 2020 21:09:50 +0000 (13:09 -0800)
core/classes/tuple/tuple.factor

index ef2de584446f6e41e79a85833e402fea93af904b..396cd13346e7848daa6860d40613125f2008e949 100644 (file)
@@ -91,6 +91,13 @@ M: tuple class-of layout-of 2 slot { word } declare ; inline
         ] curry dip
     ] if ; inline
 
+: make-tuple ( seq class -- tuple )
+    tuple-layout <tuple> [
+        [ tuple-size <iota> ]
+        [ [ set-array-nth ] curry ]
+        bi 2each
+    ] keep ; inline
+
 PRIVATE>
 
 : tuple-slots ( tuple -- seq )
@@ -99,12 +106,7 @@ PRIVATE>
 GENERIC: slots>tuple ( seq class -- tuple )
 
 M: tuple-class slots>tuple
-    check-slots pad-slots
-    tuple-layout <tuple> [
-        [ tuple-size <iota> ]
-        [ [ set-array-nth ] curry ]
-        bi 2each
-    ] keep ;
+    check-slots pad-slots make-tuple ;
 
 : tuple>array ( tuple -- array )
     [ tuple-slots ] [ class-of prefix ] bi ;