tuple - Factor Documentation (original) (raw)
Vocabulary
kernel
Class description
The class of tuples. This class is further partitioned into disjoint subclasses; each tuple shape defined by TUPLE: is a new class.
Tuple classes have additional word properties:
• | "predicate" - a quotation which tests if the top of the stack is an instance of this tuple class |
---|---|
• | "slots" - a sequence of slot-spec instances |
• | "layout" - an array with the tuple size and superclasses encoded in a format amneable to fast method dispatch |
Definition
Methods
USING: classes classes.tuple io kernel serialize
serialize.private ;
M: tuple (serialize)
[
84 write1
[ class-of (serialize) ] [ add-object ]
[ tuple-slots (serialize) ] tri
] serialize-shared ;
USING: classes classes.tuple kernel prettyprint.backend
prettyprint.custom ;
M: tuple >pprint-sequence
[ class-of ] [ tuple-slots ] bi class-slot-sequence ;
USING: accessors db.tuples kernel ;
M: tuple >query swap >>tuple ;
USING: classes classes.tuple.private kernel kernel.private
slots.private words ;
M: tuple class-of layout-of 2 slot { word } declare ; inline
M: tuple clone (clone) ; inline
M: tuple equal? over tuple? [ tuple= ] [ 2drop f ] if ;
USING: classes debugger kernel ;
M: tuple error-help class-of ;
USING: debugger inspector kernel ;
USING: classes.tuple fuel.pprint kernel ;
M: tuple fuel-pprint tuple>array fuel-pprint ; inline
USING: classes.tuple kernel math ;
M: tuple hashcode* [ tuple-hashcode ] recursive-hashcode ;
USING: kernel prettyprint.backend prettyprint.custom ;
M: tuple pprint* pprint-tuple ;
USING: kernel prettyprint.custom ;
M: tuple pprint-delims drop \ T{ \ } ;
USING: kernel prettyprint.custom ;
M: tuple pprint-narrow? drop t ;
USING: bootstrap.image.private kernel ;
M: tuple prepare-object emit-tuple ;
USING: classes.tuple kernel match ;
M: tuple replace-patterns tuple>array replace-patterns >tuple ;
USING: classes classes.tuple kernel locals.rewrite make ;
M: tuple rewrite-element
dup rewrite-literal? [
[ tuple-slots rewrite-elements ] [ class-of ] bi
[ boa ] curry %
] [ , ] if ;
USING: classes.tuple kernel locals.rewrite ;
M: tuple rewrite-literal? tuple>array rewrite-literal? ;
USING: kernel locals.rewrite ;
M: tuple rewrite-sugar* rewrite-element ;
USING: json json.private kernel mirrors ;
M: tuple stream-write-json [ ] dip write-json-assoc ;
USING: accessors alien.strings kernel ;
M: tuple string>alien drop underlying>> ;
M: tuple summary tuple-summary ;
USING: kernel mongodb.tuple.persistent
mongodb.tuple.persistent.private ;
M: tuple tuple>assoc (tuple>assoc) ;
USING: kernel mongodb.tuple.persistent
mongodb.tuple.persistent.private ;
M: tuple tuple>selector
prepare-assoc [ tuple>selector ] write-tuple-fields ;
USING: classes.tuple classes.tuple.private kernel sequences ;
M: tuple update-tuple
[ tuple-slots ] [ layout-of ] bi
[ permute-slots ] [ first ] bi slots>tuple ;