rsc3/doc-schelp/HelpSource/Classes/Pair.scrbl

84 lines
1.4 KiB
Text
Raw Permalink Normal View History

2022-08-24 13:53:18 +00:00
#lang scribble/manual
@(require (for-label racket))
@title{Pair}
LISP-like two element cells@section{categories}
Collections>Ordered
@section{description}
@section{note}
Implementation incomplete. See link::Guides/J-concepts-in-SC:: for similar functionality.
::
Most methods are inherited from the superclasses.
@section{CLASSMETHODS}
@section{method}
new
Return new instance.
@section{method}
newFrom
Convert collection (e.g. arrays of arrays) to pairs.
@section{INSTANCEMETHODS}
@section{private}
storeOn, printOn, storeArgs
@section{method}
size
Return the size when linking across.
@section{method}
depth
Return the size when linking down.
@section{method}
do
Iterate over the two elements.
Traverse
Same like: link::#-depthFirstPreOrderTraversal::
@section{method}
depthFirstPreOrderTraversal
Traverse the data structure first link down, then across (see link::#@section{Examples}
).
@section{method}
depthFirstPostOrderTraversal
Traverse the data structure from bottom up (see link::#@section{Examples}
).
@section{EXAMPLES}
@racketblock[
a = Pair(Pair(Pair(1, 2), 4), Pair(5, 6));
a.size;
a.depth;
a.do { |x| x.postln };
a.traverse { |x| x.postln };
a.depthFirstPreOrderTraversal { |x| x.postln };
a.depthFirstPostOrderTraversal { |x| x.postln };
// alternative instantiations:
Pair.newFrom([1, [2, [[4, 5], 6]]]);
[1, [2, [[4, 5], 6]]].as(Pair); // equivalent.
::
]