From a59200c84e092207e39961420afbef11e635c1da Mon Sep 17 00:00:00 2001 From: razetime Date: Fri, 28 Oct 2022 12:06:53 +0530 Subject: [PATCH] add docs for sequences.extras (part 1) --- extra/sequences/extras/extras-docs.factor | 991 ++++++++++++++++++++++ 1 file changed, 991 insertions(+) diff --git a/extra/sequences/extras/extras-docs.factor b/extra/sequences/extras/extras-docs.factor index 4c677954df..683633f702 100644 --- a/extra/sequences/extras/extras-docs.factor +++ b/extra/sequences/extras/extras-docs.factor @@ -424,3 +424,994 @@ HELP: find-pred 25\n5\n1 ]=] } ; + +HELP: (collect-with-previous) +{ $values + { "quot" quotation } { "into" object } + { "quot'" quotation } +} +{ $description "" } ; + +HELP: (each-integer-with-previous) +{ $values + { "prev" object } { "i" integer } { "n" integer } { "quot" quotation } +} +{ $description "" } ; + +HELP: (start-all) +{ $values + { "seq" sequence } { "subseq" object } { "increment" object } + { "indices" object } +} +{ $description "" } ; + +HELP: 2map-into +{ $values + { "seq1" sequence } { "seq2" sequence } { "quot" quotation } { "into" object } +} +{ $description "Applies the quotation to each pair of elements in turn, yielding new elements which are collected into a new sequence having the same class as " { $snippet "into" } "." } ; + +HELP: 2map-sum +{ $values + { "seq1" sequence } { "seq2" sequence } { "quot" quotation } + { "n" integer } +} +{ $description "Applies the quotation to each pair of elements in turn, yielding new elements which are collected into a new sequence having the same class as " { $snippet "seq1" } ". The resulting sequence is summed." } ; + +HELP: 2nested-each +{ $values + { "seq1" sequence } { "seq2" sequence } { "quot" quotation } +} +{ $description "Applies quotation to all pairs of elements from " { $snippet "seq1" } " and " { $snippet "seq2" } ". Order is the same as a nested for loop." } ; + +HELP: 2nested-map +{ $values + { "seq1" sequence } { "seq2" sequence } { "quot" quotation } + { "seq" sequence } +} +{ $description "Applies quotation to all pairs of elements from " { $snippet "seq1" } " and " { $snippet "seq2" } ", yielding new elements which are collected into a new sequence having the same class as " { $snippet "seq1" } ". Order is the same as a nested for loop." } ; + +HELP: 3each-from +{ $values + { "seq1" sequence } { "seq2" sequence } { "seq3" sequence } { "quot" quotation } { "i" integer } +} +{ $description "" } ; + +HELP: 3map-reduce +{ $values + { "seq1" sequence } { "seq2" sequence } { "seq3" sequence } { "map-quot" object } { "reduce-quot" object } + { "result" object } +} +{ $description "Applies " { $snippet "map-quot" } " to each triple of elements in turn, yielding new elements which are collected into a new sequence having the same class as " { $snippet "seq1" } ". The resultant sequence is then reduced with " { $snippet "reduce-quot" } "." } ; + +HELP: 3nested-each +{ $values + { "seq1" sequence } { "seq2" sequence } { "seq3" sequence } { "quot" quotation } +} +{ $description "Applies quotation to all triples of elements from " { $snippet "seq1" } ", " { $snippet "seq2" } " and " { $snippet "seq3" } ". Order is the same as a nested for loop." } ; + +HELP: 3nested-map +{ $values + { "seq1" sequence } { "seq2" sequence } { "seq3" sequence } { "quot" quotation } + { "seq" sequence } +} +{ $description "Applies quotation to all triples of elements from " { $snippet "seq1" } ", " { $snippet "seq2" } " and " { $snippet "seq3" } " in turn, yielding new elements which are collected into a new sequence having the same class as " { $snippet "seq1" } ". Order is the same as a nested for loop." } ; + +HELP: +{ $values + { "from" integer } { "to" integer } { "step" object } { "seq" sequence } + { "step-slice" slice } +} +{ $description "Outputs a new virtual sequence sharing storage with the subrange of elements in " { $snippet "seq" } " with indices starting from and including " { $snippet "from" } ", and up to but not including " { $snippet "to" } ", with step " { $snippet "step" } "." } ; + +HELP: +{ $values + { "seq" sequence } + { "virtual-zip-index" object } +} +{ $description "Outputs a new virtual sequence which pairs the elements of " { $snippet "seq" } " with their 0-based indices." } ; + +HELP: >string-list +{ $values + { "seq" sequence } + { "seq'" sequence } +} +{ $description "Surrounds each element of " { $snippet "seq" } " in quotes and joins the sequence with commas." } ; + +HELP: ? +{ $values + { "from/f" { $maybe integer } } { "to/f" { $maybe integer } } { "sequence" sequence } + { "slice" slice } +} +{ $description "Outputs a new virtual sequence sharing storage with the subrange of elements in " { $snippet "seq" } " with indices starting from and including " { $snippet "from/f" } ", and up to but not including " { $snippet "to/f" } ". If either of these is not specified, they are substituted with the array's bounds: 0 and its length." } ; + +HELP: ?first2 +{ $values + { "seq" sequence } + { "first/f" object } { "second/f" object } +} +{ $description "Pushes the first two elements of " { $snippet "seq" } ". Pushes " { $snippet "f" } " for missing elements." } ; + +HELP: ?first3 +{ $values + { "seq" sequence } + { "first/f" object } { "second/f" object } { "third/f" object } +} +{ $description "Pushes the first three elements of " { $snippet "seq" } ". Pushes " { $snippet "f" } " for missing elements." } ; + +HELP: ?first4 +{ $values + { "seq" sequence } + { "first/f" object } { "second/f" object } { "third/f" object } { "fourth/f" object } +} +{ $description "Pushes the first four elements of " { $snippet "seq" } ". Pushes " { $snippet "f" } " for missing elements." } ; + +HELP: ?heap-pop-value>array +{ $values + { "heap" object } + { "array" array } +} +{ $description "Pushes the value at the top of " { $snippet "heap" } " as a single element array. Returns an empty array if the heap is empty." } ; + +HELP: ?span-slices +{ $values + { "slice1/f" { $maybe slice } } { "slice2/f" { $maybe slice } } + { "slice" slice } +} +{ $description "Create a virtual sequence spanning the length covered by " { $snippet "slice1" } " and " { $snippet "slice2" } ". Slices must refer to the same sequence. If " { $snippet "f" } "is one of the inputs, it is omitted." } ; + +HELP: ?trim +{ $values + { "seq" sequence } { "quot" quotation } + { "seq/newseq" object } +} +{ $description "Similar to " { $link "trim" } ", but sequences that do not require trimming are left as is." } ; + +HELP: ?trim-head +{ $values + { "seq" sequence } { "quot" quotation } + { "seq/newseq" object } +} +{ $description "Similar to " { $link "trim-head" } ", but sequences that do not require trimming are left as is." } ; + +HELP: ?trim-tail +{ $values + { "seq" sequence } { "quot" quotation } + { "seq/newseq" object } +} +{ $description "Similar to " { $link "trim-tail" } ", but sequences that do not require trimming are left as is." } ; + +HELP: all-longest +{ $values + { "seqs" object } + { "seqs'" object } +} +{ $description "Pushes a sequence containing all of the sequences in " { $snippet "seqs" } " that have the longest length." } ; + +HELP: all-rotations +{ $values + { "seq" sequence } + { "seq'" sequence } +} +{ $description "Pushes a sequence containing all the rotations of " { $snippet "seq" } ", including the original array." } ; + +HELP: all-shortest +{ $values + { "seqs" object } + { "seqs'" object } +} +{ $description "Pushes a sequence containing all of the sequences in " { $snippet "seqs" } " that have the shortest length." } ; + +HELP: all-subseqs +{ $values + { "seq" sequence } + { "seqs" object } +} +{ $description "Pushes a sequence containing all subsequences in " { $snippet "seq" } " excluding the empty sequence." } ; + +HELP: appender +{ $values + { "quot" quotation } + { "appender" quotation } { "accum" vector } +} +{ $description "Given a quotation " { $snippet "quot" } ", creates an appender quotation and empty vector to append new sequences to it. The appender quotation will apply " { $snippet "quot" } " to its argument before appending it to the vector." } ; + +HELP: appender-for +{ $values + { "quot" quotation } { "exemplar" object } + { "appender" object } { "accum" object } +} +{ $description "Given a quotation " { $snippet "quot" } ", creates an appender quotation and empty vector with a maximum storage limit the size of " { $snippet "exemplar" } ". The appender quotation will apply " { $snippet "quot" } " to its argument before appending it to the vector." } ; + +HELP: arg-sort +{ $values + { "seq" sequence } + { "indices" object } +} +{ $description "Given a sequence " { $snippet "seq" } ", push a sequence of indices that when indexed into, sort the given sequence." } ; + +HELP: arg-where +{ $values + { "seq" sequence } { "quot" quotation } + { "indices" object } +} +{ $description "Push a sequence of all indices in " { $snippet "seq" } " where " { $snippet "quot" } "applied to the element at each index is true." } ; + +HELP: assoc-zip-with +{ $values + { "seq" assoc } { "quot" quotation } + { "alist" "an array of key/value pairs" } +} +{ $description "Applies " { $snippet "quot" } " to each key-value pair in the given assoc, pushing a new assoc with the key-value pairs as keys, and the values computed by " { $snippet "quot" } " as values." } ; + +HELP: change-last +{ $values + { "seq" sequence } { "quot" quotation } +} +{ $description "Applies " { $snippet "quot" } " to the last element of a sequence, modifying it in place." } ; + +HELP: change-last-unsafe +{ $values + { "seq" sequence } { "quot" quotation } +} +{ $description "Applies " { $snippet "quot" } " to the last element of a sequence, modifying it in place. Does not check if the array has a last element." } ; + +HELP: change-nths +{ $values + { "indices" object } { "seq" sequence } { "quot" quotation } +} +{ $description "Applies " { $snippet "quot" } " to the locations present in " { $snippet "indices" } " in sequence " { $snippet "seq" } ", modifying it in place." } ; + +HELP: collect-with-previous +{ $values + { "n" integer } { "quot" quotation } { "into" object } +} +{ $description "" } ; + +HELP: count-head +{ $values + { "seq" sequence } { "quot" quotation } + { "n" integer } +} +{ $description "Count the number of values at the beginning of " { $snippet "seq" } " that return a truthy value when passed into " { $snippet "quot" } "." } ; + +HELP: count-tail +{ $values + { "seq" sequence } { "quot" quotation } + { "n" integer } +} +{ $description "Count the number of values at the beginning of " { $snippet "seq" } " that return a truthy value when passed into " { $snippet "quot" } "." } ; + +HELP: cut-when +{ $values + { "seq" sequence } { "quot" quotation } + { "before" object } { "after" object } +} +{ $description "Cut the given sequence before the first element of " { $snippet "seq" } " that returns a truthy value when passed into " { $snippet "quot" } "." } ; + +HELP: drop-while +{ $values + { "seq" sequence } { "quot" quotation } + { "tail-slice" object } +} +{ $description "Remove all values at the beginning of " { $snippet "seq" } " that return a truthy value when passed into " { $snippet "quot" } ". Return a virtual sequence containing those elements." } ; + +HELP: each-index-from +{ $values + { "seq" sequence } { "quot" quotation } { "i" integer } +} +{ $description "" } ; + +HELP: each-integer-with-previous +{ $values + { "n" integer } { "quot" quotation } +} +{ $description "" } ; + +HELP: each-prior +{ $values + { "seq" sequence } { "quot" quotation } +} +{ $description "" } ; + +HELP: each-subseq +{ $values + { "seq" sequence } { "quot" quotation } +} +{ $description "" } ; + +HELP: ensure-same-underlying +{ $values + { "slice1" slice } { "slice2" slice } +} +{ $description "" } ; + +HELP: even-indices +{ $values + { "seq" sequence } + { "seq'" sequence } +} +{ $description "Push a sequence containing the even-indexed elements in " { $snippet "seq" } "." } ; + +HELP: evens +{ $class-description "The class of virtual sequences which contain the even-indexed elements of a given sequence." } ; + +HELP: extract! +{ $values + { "seq" sequence } { "quot" quotation } +} +{ $description "" } ; + +HELP: filter-all-subseqs +{ $values + { "seq" sequence } { "quot" quotation } +} +{ $description "Perform a filter on all the subsequences of the given sequence, and push a sequence containing the subsequences that satisfy the condition given by " { $snippet "quot" } "." } ; + +HELP: filter-all-subseqs-range +{ $values + { "seq" sequence } { "range" object } { "quot" quotation } +} +{ $description "Perform a filter on all the subsequences of the given sequence that have length within " { $snippet "range" } ", and push a sequence containing the subsequences that satisfy the condition given by " { $snippet "quot" } "." } ; + +HELP: filter-index +{ $values + { "seq" sequence } { "quot" quotation } + { "seq'" sequence } +} +{ $description "Perform a " { $link "filter" } " on the given sequence, with the index provided as an additional argument to " { $snippet "quot" } "." } ; + +HELP: filter-index-as +{ $values + { "seq" sequence } { "quot" quotation } { "exemplar" object } + { "seq'" sequence } +} +{ $description "Perform a " { $link "filter-as" } " on the given sequence, with the index provided as an additional argument to " { $snippet "quot" } ". Outputs a sequence of the same class as " { $snippet "exemplar" } "." } ; + +HELP: filter-length +{ $values + { "seq" sequence } { "n" integer } + { "seq'" sequence } +} +{ $description "Push a sequence that contains all elements of " { $snippet "seq" } " that have length " { $snippet "n" } "." } ; + +HELP: filter-map +{ $values + { "seq" sequence } { "filter-quot" object } { "map-quot" object } + { "newseq" sequence } +} +{ $description "Filter the given sequence with " { $snippet "filter-quot" } ", then perform a map on the filtered sequence with " { $snippet "map-quot" } "." } ; + +HELP: filter-map-as +{ $values + { "seq" sequence } { "filter-quot" object } { "map-quot" object } { "exemplar" object } + { "newseq" sequence } +} +{ $description "Filter the given sequence with " { $snippet "filter-quot" } ", then perform a map on the filtered sequence with " { $snippet "map-quot" } ". Outputs a sequence of the same class as " { $snippet "exemplar" } "." } ; + +HELP: find-last-index +{ $values + { "seq" sequence } { "quot" quotation } + { "i" integer } { "elt" object } +} +{ $description "A simpler variant of " { $link "find-last-index-from" } ", with starting index set to 0." } ; + +HELP: find-last-index-from +{ $values + { "n" integer } { "seq" sequence } { "quot" quotation } + { "i" integer } { "elt" object } +} +{ $description "Similar to " { $snippet "find-from" } ", except " { $snippet "quot" } " is given the index of each element, and the index of the found element is pushed along with the found element." } ; + +HELP: find-pred-loop +{ $values + { "i" integer } { "n" integer } { "seq" sequence } { "quot" quotation } + { "calc/f" object } { "i/f" { $maybe integer } } { "elt/f" object } +} +{ $description "" } ; + +HELP: harvest! +{ $values + { "seq" sequence } + { "newseq" sequence } +} +{ $description "Outputs a new sequence with all empty sequences removed. Modifies " { $snippet "seq" } "in place." } ; + +HELP: harvest-as +{ $values + { "seq" sequence } { "exemplar" object } + { "newseq" sequence } +} +{ $description "Outputs a new sequence with all empty sequences removed. Resulting sequence is the same class as " { $snippet "exemplar" } "." } ; + +HELP: head*-as +{ $values + { "seq" sequence } { "n" integer } { "exemplar" object } + { "seq'" sequence } +} +{ $description "A version of " { $link "head*" } " where " { $snippet "seq'" } " is the same class as " { $snippet "exemplar" } "." } ; + +HELP: head-as +{ $values + { "seq" sequence } { "n" integer } { "exemplar" object } + { "seq'" sequence } +} +{ $description "A version of " { $link "head" } " where " { $snippet "seq'" } " is the same class as " { $snippet "exemplar" } "." } ; + +HELP: heap>pairs +{ $values + { "heap" object } + { "pairs" object } +} +{ $description "Collect the pairs inside a heap into a sequence. Ordering of the sequence is based on the ordering of the heap." } ; + +HELP: index-selector +{ $values + { "quot" quotation } + { "selector" object } { "accum" object } +} +{ $description "" } ; + +HELP: index-selector-as +{ $values + { "quot" quotation } { "exemplar" object } + { "selector" object } { "accum" object } +} +{ $description "" } ; + +HELP: infimum-by* +{ $values + { "seq" sequence } { "quot" quotation } + { "i" integer } { "elt" object } +} +{ $description "A variant of " { $link "infimum-by" } " that pushes the index of the least element along with the least element." } ; + +HELP: insert-nth! +{ $values + { "elt" object } { "n" integer } { "seq" sequence } +} +{ $description "A variant of " { $link "insert-nth" } " that modifies " { $snippet "seq" } " in place." } ; + +HELP: interleaved +{ $values + { "seq" sequence } { "glue" object } + { "newseq" sequence } +} +{ $description "Insert " { $link "glue" } " between every pair of elements in " { $snippet "seq" } "." } ; + +HELP: interleaved-as +{ $values + { "seq" sequence } { "glue" object } { "exemplar" object } + { "newseq" sequence } +} +{ $description "Insert " { $link "glue" } " between every pair of elements in " { $snippet "seq" } ". Resulting sequence will be the same class as " { $snippet "exemplar" } "." } ; + +HELP: iterate-heap-while +{ $values + { "heap" object } { "quot1" quotation } { "quot2" quotation } + { "obj/f" { $maybe object } } { "loop?" object } +} +{ $description "" } ; + +HELP: last= +{ $values + { "seq" sequence } { "elt" object } + { "?" boolean } +} +{ $description "Check if the last element of " { $snippet "seq" } " is equal to " { $snippet "elt" } "." } ; + +HELP: last? +{ $values + { "seq" sequence } { "quot" quotation } + { "?" boolean } +} +{ $description "Check if the last element of " { $snippet "seq" } " satisfies the condition given by " { $snippet "quot" } "." } ; + +HELP: longest-subseq +{ $values + { "seq1" sequence } { "seq2" sequence } + { "subseq" object } +} +{ $description "Pushes the longest subsequence of " { $snippet "seq" } "." } ; + +HELP: map-concat +{ $values + { "seq" sequence } { "quot" quotation } + { "newseq" sequence } +} +{ $description "Perform a " { $link "map" } " on the given sequence with " { $snippet "quot" } ", then perform a " { $link "concat" } " on the result." } ; + +HELP: map-concat-as +{ $values + { "seq" sequence } { "quot" quotation } { "exemplar" object } + { "newseq" sequence } +} +{ $description "A version of " { $link "map-concat" } " where the resultant sequence has the same class as " { $snippet "exemplar" } } ; + +HELP: map-filter +{ $values + { "seq" sequence } { "map-quot" object } { "filter-quot" object } + { "subseq" object } +} +{ $description "Perform a " { $link "map" } " on the given sequence with " { $snippet "map-quot" } ", then perform a " { $link "filter" } " on the result with " { $snippet "filter-quot" } "." } ; + +HELP: map-filter-as +{ $values + { "seq" sequence } { "map-quot" object } { "filter-quot" object } { "exemplar" object } + { "subseq" object } +} +{ $description "A version of " { $link "map-filter" } " where the resultant sequence has the same class as " { $snippet "exemplar" } } ; + +HELP: map-find-index +{ $values + { "seq" sequence } { "quot" quotation } + { "result" object } { "i" integer } { "elt" object } +} +{ $description "A version of " { $link "map-find" } " where the index of the found element, if any, is returned." } ; + +HELP: map-find-last-index +{ $values + { "seq" sequence } { "quot" quotation } + { "result" object } { "i" integer } { "elt" object } +} +{ $description "A version of " { $link "map-find-index" } " where the index of the found element, if any, is returned." } ; + +HELP: map-from +{ $values + { "seq" sequence } { "quot" quotation } { "i" integer } + { "newseq" sequence } +} +{ $description "A version of " { $link "map" } " that maps the slice of " { $snippet "seq" } " beginning at index " { $snippet "i" } "." } ; + +HELP: map-from-as +{ $values + { "seq" sequence } { "quot" quotation } { "i" integer } { "exemplar" object } + { "newseq" sequence } +} +{ $description "A version of " { $link "map-from" } " where the resultant sequence has the same class as " { $snippet "exemplar" } } ; + +HELP: map-harvest +{ $values + { "seq" sequence } { "quot" quotation } + { "newseq" sequence } +} +{ $description "A version of " { $link "map" } " with all empty sequences removed from the result." } ; + +HELP: map-if +{ $values + { "seq" sequence } { "if-quot" object } { "map-quot" object } + { "newseq" sequence } +} +{ $description "A version of " { $link "map" } " where " { $snippet "map-quot" } " is applied only if " { $snippet "if-quot" } " returns true for a given element." } ; + +HELP: map-index! +{ $values + { "seq" sequence } { "quot" quotation } +} +{ $description "A version of " { $link "map-index" } " which modifies " { $snippet "seq" } " in place." } ; + +HELP: map-integers-with +{ $values + { "len" object } { "quot" quotation } { "exemplar" object } + { "newseq" sequence } +} +{ $description "" } ; + +HELP: map-like +{ $values + { "seq" sequence } { "exemplar" object } + { "seq'" sequence } +} +{ $description "" } ; + +HELP: map-prior +{ $values + { "seq" sequence } { "quot" quotation } + { "seq'" sequence } +} +{ $description "" } ; + +HELP: map-prior-as +{ $values + { "seq" sequence } { "quot" quotation } { "exemplar" object } + { "seq'" sequence } +} +{ $description "" } ; + +HELP: map-product +{ $values + { "seq" sequence } { "quot" quotation } + { "n" integer } +} +{ $description "Like " { $link "map product" } ", but without creating an intermediate sequence." } ; + +HELP: map-sift +{ $values + { "seq" sequence } { "quot" quotation } + { "newseq" sequence } +} +{ $description "A version of " { $link "map" } " with all instances of " { $link "f" } " removed from the result." } ; + +HELP: map-with-previous +{ $values + { "seq" sequence } { "quot" quotation } + { "newseq" sequence } +} +{ $description "" } ; + +HELP: map-with-previous-as +{ $values + { "seq" sequence } { "quot" quotation } { "exemplar" object } + { "newseq" sequence } +} +{ $description "" } ; + +HELP: map-zip-swap +{ $values + { "quot" quotation } + { "alist" "an array of key/value pairs" } +} +{ $description "" } ; + +HELP: max-subarray-sum +{ $values + { "seq" sequence } + { "sum" object } +} +{ $description "Output the maximum subarray sum of the sequence." } ; + +HELP: merge-slices +{ $values + { "slice1" slice } { "slice2" slice } + { "slice/*" object } +} +{ $description "" } ; + +HELP: nth* +{ $values + { "n" integer } { "seq" sequence } + { "elt" object } +} +{ $description "Pushes the nth element of the sequence if it exists, otherwise pushes sequence length - 1." } ; + +HELP: nth= +{ $values + { "n" integer } { "seq" sequence } { "elt" object } + { "?" boolean } +} +{ $description "Check if the nth element of " { $snippet "seq" } " is equal to " { $snippet "elt" } "." } ; + +HELP: nth? +{ $values + { "n" integer } { "seq" sequence } { "quot" quotation } + { "?" boolean } +} +{ $description "Check if the nth element of " { $snippet "seq" } " satisfies the condition given by " { $snippet "quot" } "." } ; + +HELP: odd-indices +{ $values + { "seq" sequence } + { "seq'" sequence } +} +{ $description "Push a sequence containing the odd-indexed elements in " { $snippet "seq" } "." } ; + +HELP: odds +{ $class-description "The class of virtual sequences which contain the odd-indexed elements of a given sequence." } ; + +HELP: one? +{ $values + { "seq" sequence } { "quot" quotation } + { "?" boolean } +} +{ $description "" } ; + +HELP: ordered-slices-overlap? +{ $values + { "slice-lt" object } { "slice-gt" object } + { "?" boolean } +} +{ $description "" } ; + +HELP: ordered-slices-range +{ $values + { "slice-lt" object } { "slice-gt" object } + { "to" integer } { "from" integer } +} +{ $description "" } ; + +HELP: ordered-slices-touch? +{ $values + { "slice-lt" object } { "slice-gt" object } + { "?" boolean } +} +{ $description "" } ; + +HELP: pad-longest +{ $values + { "seq1" sequence } { "seq2" sequence } { "elt" object } +} +{ $description "Perform " { $link "pad-tail" } " on both sequences, padding with " { $snippet "elt" } " to the longest length between the two." } ; + +HELP: prepend-lines-with-spaces +{ $values + { "str" string } + { "str'" string } +} +{ $description "Prepend four spaces to each line in " { $snippet "str" } "." } ; + +HELP: push-if* +{ $values + { "elt" object } { "quot" quotation } { "accum" object } +} +{ $description "" } ; + +HELP: push-if-index +{ $values + { "elt" object } { "i" integer } { "quot" quotation } { "accum" object } +} +{ $description "" } ; + +HELP: reduce-from +{ $values + { "seq" sequence } { "identity" object } { "quot" quotation } { "i" integer } + { "result" object } +} +{ $description "" } ; + +HELP: remove-first +{ $values + { "obj" object } { "seq" sequence } + { "seq'" sequence } +} +{ $description "Remove the first occurrence of " { $snippet "obj" } " in " { $snippet "seq" } "." } ; + +HELP: remove-first! +{ $values + { "obj" object } { "seq" sequence } +} +{ $description "A version of " { $link "remove-first" } " that modifies " { $snippet "seq" } " in place." } ; + +HELP: remove-last +{ $values + { "obj" object } { "seq" sequence } + { "seq'" sequence } +} +{ $description "Remove the last occurrence of " { $snippet "obj" } " in " { $snippet "seq" } "." } ; + +HELP: remove-last! +{ $values + { "obj" object } { "seq" sequence } +} +{ $description "A version of " { $link "remove-last" } " that modifies " { $snippet "seq" } " in place." } ; + +HELP: replicate-into +{ $values + { "seq" sequence } { "quot" quotation } +} +{ $description "" } ; + +HELP: reverse-as +{ $values + { "seq" sequence } { "exemplar" object } + { "newseq" sequence } +} +{ $description "A version of " { $link "reverse" } " where " { $snippet "seq'" } " is the same class as " { $snippet "exemplar" } "." } ; + +HELP: rotate +{ $values + { "seq" sequence } { "n" integer } + { "seq'" sequence } +} +{ $description "Move the first " { $snippet "n" } " elements of " { $snippet "seq" } " to the end." } ; + +HELP: rotate! +{ $values + { "seq" sequence } { "n" integer } +} +{ $description "A version of " { $link "rotate!" } " that modifies " { $snippet "seq" } " in place." } ; + +HELP: round-robin +{ $values + { "seq" sequence } + { "newseq" sequence } +} +{ $description "List all elements of " { $snippet "seq" } " in column-major order." } ; + +HELP: safe-subseq +{ $values + { "from" integer } { "to" integer } { "seq" sequence } + { "subseq" object } +} +{ $description "A safe version of " { $link "subseq" } "." } ; + +HELP: selector* +{ $values + { "quot" quotation } + { "selector" object } { "accum" object } +} +{ $description "" } ; + +HELP: selector-as* +{ $values + { "quot" quotation } { "exemplar" object } + { "selector" object } { "accum" object } +} +{ $description "" } ; + +HELP: sequence-index-operator-last +{ $values + { "n" integer } { "seq" sequence } { "quot" quotation } + { "quot'" quotation } +} +{ $description "" } ; + +HELP: sequence>slice +{ $values + { "sequence" sequence } + { "slice" slice } +} +{ $description "Create a virtual sequence that represents the given sequence." } ; + +HELP: set-nths +{ $values + { "value" object } { "indices" object } { "seq" sequence } +} +{ $description "Set the elements at all given indices to " { $snippet "value" } ". modifies " { $snippet "seq" } " in place." } ; + +HELP: set-nths-unsafe +{ $values + { "value" object } { "indices" object } { "seq" sequence } +} +{ $description "Unsafe version of " { $link "set-nths" } } ; + +HELP: shorten* +{ $values + { "vector" object } { "n" integer } + { "seq" sequence } +} +{ $description "" } ; + +HELP: sift! +{ $values + { "seq" sequence } + { "newseq" sequence } +} +{ $description "" } ; + +HELP: sift-as +{ $values + { "seq" sequence } { "exemplar" object } + { "newseq" sequence } +} +{ $description "" } ; + +HELP: slice-order-by-from +{ $values + { "slice1" slice } { "slice2" slice } + { "slice-lt" object } { "slice-gt" object } +} +{ $description "" } ; + +HELP: slice-when +{ $values + { "seq" sequence } { "quot" quotation } + { "seq'" sequence } +} +{ $description "" } ; + +HELP: slices-don't-touch +{ $values + { "slice1" slice } { "slice2" slice } +} +{ $description "Throws a " { $link slices-don't-touch } " error." } +{ $error-description "" } ; + +HELP: slices-overlap? +{ $values + { "slice1" slice } { "slice2" slice } + { "?" boolean } +} +{ $description "" } ; + +HELP: slices-touch? +{ $values + { "slice1" slice } { "slice2" slice } + { "?" boolean } +} +{ $description "" } ; + +HELP: slurp-heap-while-map +{ $values + { "heap" object } { "quot1" quotation } { "quot2" quotation } + { "seq" sequence } +} +{ $description "" } ; + +HELP: span-slices +{ $values + { "slice1" slice } { "slice2" slice } + { "slice" slice } +} +{ $description "Create a virtual sequence spanning the length covered by " { $snippet "slice1" } " and " { $snippet "slice2" } ". Slices must refer to the same sequence." } ; + +HELP: step-slice +{ $class-description "" } ; + +HELP: supremum-by* +{ $values + { "seq" sequence } { "quot" quotation } + { "i" integer } { "elt" object } +} +{ $description "" } ; + +HELP: tail*-as +{ $values + { "seq" sequence } { "n" integer } { "exemplar" object } + { "seq'" sequence } +} +{ $description "" } ; + +HELP: tail-as +{ $values + { "seq" sequence } { "n" integer } { "exemplar" object } + { "seq'" sequence } +} +{ $description "" } ; + +HELP: take-while +{ $values + { "seq" sequence } { "quot" quotation } + { "head-slice" object } +} +{ $description "" } ; + +HELP: trim-as +{ $values + { "seq" sequence } { "quot" quotation } { "exemplar" object } + { "newseq" sequence } +} +{ $description "" } ; + +HELP: underlying-mismatch +{ $values + { "slice1" slice } { "slice2" slice } +} +{ $description "Throws an " { $link underlying-mismatch } " error." } +{ $error-description "" } ; + +HELP: unordered-slices-overlap? +{ $values + { "slice1" slice } { "slice2" slice } + { "?" boolean } +} +{ $description "" } ; + +HELP: unordered-slices-range +{ $values + { "slice1" slice } { "slice2" slice } + { "to" integer } { "from" integer } +} +{ $description "" } ; + +HELP: unordered-slices-touch? +{ $values + { "slice1" slice } { "slice2" slice } + { "?" boolean } +} +{ $description "" } ; + +HELP: until-empty +{ $values + { "seq" sequence } { "quot" quotation } +} +{ $description "" } ; + +HELP: virtual-zip-index +{ $class-description "" } ; + +HELP: with-string-lines +{ $values + { "str" string } { "quot" quotation } + { "str'" string } +} +{ $description "" } ; -- 2.34.1