diff --git a/basis/tuple-arrays/tuple-arrays.factor b/basis/tuple-arrays/tuple-arrays.factor index 869f8bf5a1..40cd416297 100644 --- a/basis/tuple-arrays/tuple-arrays.factor +++ b/basis/tuple-arrays/tuple-arrays.factor @@ -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-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 ; inline @@ -60,7 +54,7 @@ TUPLE: CLASS-array { length array-capacity read-only } ; : ( length -- tuple-array ) - [ \ CLASS [ tuple-prototype concat ] [ tuple-arity ] bi ] keep + [ \ CLASS [ initial-values concat ] [ tuple-arity ] bi ] keep \ CLASS-array boa ; inline M: CLASS-array length length>> ; inline diff --git a/core/classes/tuple/tuple-docs.factor b/core/classes/tuple/tuple-docs.factor index 8e41bfbe12..86bfd85da9 100644 --- a/core/classes/tuple/tuple-docs.factor +++ b/core/classes/tuple/tuple-docs.factor @@ -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: { $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 } "." } ;