]> gitweb.factorcode.org Git - factor.git/commitdiff
tuple-arrays: initial-values can be reused here to create the tuple
authorBjörn Lindqvist <bjourne@gmail.com>
Sat, 10 Oct 2015 20:12:51 +0000 (22:12 +0200)
committerBjörn Lindqvist <bjourne@gmail.com>
Sat, 10 Oct 2015 21:58:04 +0000 (23:58 +0200)
array sequence

basis/tuple-arrays/tuple-arrays.factor
core/classes/tuple/tuple-docs.factor

index 869f8bf5a1bb5a1390c6f67c7c02b210a217f90f..40cd416297dce72e28c1907bc0c2225d0b59c2b1 100644 (file)
@@ -1,8 +1,8 @@
 ! Copyright (C) 2009, 2010 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors arrays combinators.smart fry functors kernel
-kernel.private macros sequences combinators sequences.private
-stack-checker parser math classes.tuple classes.tuple.private ;
+USING: accessors arrays classes.tuple classes.tuple.private
+combinators combinators.smart fry functors kernel macros math parser
+sequences sequences.private ;
 FROM: inverse => undo ;
 IN: tuple-arrays
 
@@ -14,12 +14,6 @@ MACRO: boa-unsafe ( class -- quot ) tuple-layout '[ _ <tuple-boa> ] ;
 
 : tuple-arity ( class -- quot ) '[ _ boa ] inputs ; inline
 
-: smart-tuple>array ( tuple class -- array )
-    '[ [ _ boa ] undo ] output>array ; inline
-
-: tuple-prototype ( class -- array )
-    [ new ] [ smart-tuple>array ] bi ; inline
-
 : tuple-slice ( n seq -- slice )
     [ n>> [ * dup ] keep + ] [ seq>> ] bi <slice-unsafe> ; inline
 
@@ -60,7 +54,7 @@ TUPLE: CLASS-array
 { length array-capacity read-only } ;
 
 : <CLASS-array> ( length -- tuple-array )
-    [ \ CLASS [ tuple-prototype <repetition> concat ] [ tuple-arity ] bi ] keep
+    [ \ CLASS [ initial-values <repetition> concat ] [ tuple-arity ] bi ] keep
     \ CLASS-array boa ; inline
 
 M: CLASS-array length length>> ; inline
index 8e41bfbe129723a597c865d1c012c3d9a8b35edf..86bfd85da94a1261431697155abe469c73037bc5 100644 (file)
@@ -419,6 +419,10 @@ HELP: tuple>array
 { $values { "tuple" tuple } { "array" array } }
 { $description "Outputs an array having the tuple's slots as elements. The first element is the tuple class word and remainder are declared slots." } ;
 
+HELP: initial-values
+{ $values { "class" class } { "seq" sequence } }
+{ $description "Gets a sequence with the initial value for each tuple slot." } ;
+
 HELP: <tuple>
 { $values { "layout" "a tuple layout array" } { "tuple" tuple } }
 { $description "Low-level tuple constructor. User code should never call this directly, and instead use " { $link new } "." } ;