add* [ "Returns the result of adding two values." [catch] value1 [number! pair! char! money! date! time! tuple! object!] value2 [number! pair! char! money! date! time! tuple! object!] ] subtract* [ {Returns the second value subtracted from the first.} [catch] value1 [number! pair! char! money! date! time! tuple! object!] value2 [number! pair! char! money! date! time! tuple! object!] ] multiply* [ "Returns the first value multiplied by the second." [catch] value1 [number! pair! char! money! time! tuple! object!] value2 [number! pair! char! money! time! tuple! object!] ] divide* [ "Returns the first value divided by the second." [catch] value1 [number! pair! char! money! time! tuple! object!] value2 [number! pair! char! money! time! tuple! object!] ] remainder* [ {Returns the remainder of first value divided by second.} [catch] value1 [number! pair! char! money! time! tuple! object!] value2 [number! pair! char! money! time! tuple! object!] ] power* [ {Returns the first number raised to the second number.} [catch] number [number! object!] exponent [number! object!] ] and~* [ "Returns the first value ANDed with the second." [catch] value1 [logic! number! char! tuple! binary! image! object!] value2 [logic! number! char! tuple! binary! image! object!] ] or~* [ "Returns the first value ORed with the second." [catch] value1 [logic! number! char! tuple! binary! image! object!] value2 [logic! number! char! tuple! binary! image! object!] ] xor~* [ {Returns the first value exclusive ORed with the second.} [catch] value1 [logic! number! char! tuple! binary! image! object!] value2 [logic! number! char! tuple! binary! image! object!] ] same?* [ "Returns TRUE if the values are identical." [catch] value1 value2 ] equal?* [ "Returns TRUE if the values are equal." [catch] value1 value2 ] strict-equal?* [ {Returns TRUE if the values are equal and of the same datatype.} [catch] value1 value2 ] not-equal?* [ "Returns TRUE if the values are not equal." [catch] value1 value2 ] strict-not-equal?* [ {Returns TRUE if the values are not equal and not of the same datatype.} [catch] value1 value2 ] greater?* [ {Returns TRUE if the first value is greater than the second value.} [catch] value1 value2 ] lesser?* [ {Returns TRUE if the first value is less than the second value.} [catch] value1 value2 ] greater-or-equal?* [ {Returns TRUE if the first value is greater than or equal to the second value.} [catch] value1 value2 ] lesser-or-equal?* [ {Returns TRUE if the first value is less than or equal to the second value.} [catch] value1 value2 ] negate* [ "Changes the sign of a number." [catch] number [number! pair! money! time! bitset! object!] ] complement* [ "Returns the one's complement value." [catch] value [logic! number! char! tuple! bitset! object!] ] random* [ "Returns a random value of the same datatype." [catch] value "Maximum value of result" /seed "Restart or randomize" /secure "Returns a cryptographically secure random number." /only "Return single value from series." ] odd?* [ "Returns TRUE if the number is odd." [catch] number [number! char! date! money! time! object!] ] even?* [ "Returns TRUE if the number is even." [catch] number [number! char! date! money! time! object!] ] negative?* [ "Returns TRUE if the number is negative." [catch] number [number! char! money! time! object!] ] positive?* [ "Returns TRUE if the value is positive." [catch] number [number! char! money! time! object!] ] zero?* [ "Returns TRUE if the number is zero." [catch] number [number! pair! char! money! time! tuple! object!] ] head* [ "Returns the series at its head." [catch] series [series! port! object!] ] tail* [ {Returns the series at the position after the last value.} [catch] series [series! port! object!] ] head?* [ "Returns TRUE if a series is at its head." [catch] series [series! port! object!] ] tail?* [ "Returns TRUE if a series is at its tail." [catch] series [series! port! bitset! object!] ] next* [ "Returns the series at its next position." [catch] series [series! port! object!] ] back* [ "Returns the series at its previous position." [catch] series [series! port! object!] ] skip* [ {Returns the series forward or backward from the current position.} [catch] series [series! port! object!] offset [number! logic! pair!] "Can be positive, negative, or zero." ] at* [ "Returns the series at the specified index." [catch] series [series! port! object!] index [number! logic! pair!] "Can be positive, negative, or zero." ] index?* [ {Returns the index number of the current position in the series.} [catch] series [series! port! object!] ] length?* [ {Returns the length of the series from the current position.} [catch] series [series! port! tuple! bitset! struct! object!] ] pick* [ {Returns the value at the specified position in a series.} [catch] series [series! pair! event! money! date! time! object! port! tuple! any-function!] index [number! logic! pair!] ] last* [ "Returns the last value of a series." [catch] series [series! port! tuple! object!] ] find* [ {Finds a value in a series and returns the series at the start of it.} [catch] series [series! port! bitset! object!] value [any-type!] /part "Limits the search to a given length or position." range [number! series! port! object!] /only "Treats a series value as a single value." /case "Characters are case-sensitive." /any "Enables the * and ? wildcards." /with "Allows custom wildcards." wild [string!] "Specifies alternates for * and ?" /skip "Treat the series as records of fixed size" size [integer!] /match {Performs comparison and returns the tail of the match.} /tail "Returns the end of the string." /last "Backwards from end of string." /reverse "Backwards from the current position." ] select* [ {Finds a value in the series and returns the value or series after it.} [catch] series [series! port! object!] value [any-type!] /part "Limits the search to a given length or position." range [number! series! port! object!] /only "Treats a series value as a single value." /case "Characters are case-sensitive." /any "Enables the * and ? wildcards." /with "Allows custom wildcards." wild [string!] "Specifies alternates for * and ?" /skip "Treat the series as records of fixed size" size [integer!] ] make* [ "Constructs and returns a new value." [catch] type [any-type!] "The datatype or example value." spec [any-type!] "The attributes of the new value." ] copy* [ "Returns a copy of a value." [catch] value [series! port! bitset! object!] "Usually a series" /part "Limits to a given length or position." range [number! series! port! pair! object!] /deep "Also copies series values within the block." ] insert* [ {Inserts a value into a series and returns the series after the insert.} [catch] series [series! port! bitset! object!] "Series at point to insert" value [any-type!] "The value to insert" /part "Limits to a given length or position." range [number! series! port! pair! object!] /only "Inserts a series as a series." /dup "Duplicates the insert a specified number of times." count [number! pair!] ] remove* [ {Removes value(s) from a series and returns after the remove.} [catch] series [series! port! bitset! none! object!] /part "Removes to a given length or position." range [number! series! port! pair! object!] ] change* [ {Changes a value in a series and returns the series after the change.} [catch] series [series! port! object!] "Series at point to change" value [any-type!] "The new value" /part {Limits the amount to change to a given length or position.} range [number! series! port! pair! object!] /only "Changes a series as a series." /dup "Duplicates the change a specified number of times." count [number! pair!] ] poke* [ {Returns value after changing its data at the given index. (See manual)} [catch] value [series! money! date! time! object! port! tuple!] index [number! logic! pair!] data "new value" ] clear* [ {Removes all values from the current index to the tail. Returns at tail.} [catch] series [series! port! bitset! none! object!] ] trim* [ {Removes whitespace from a string. Default removes from head and tail.} [catch] series [series! port! object!] /head "Removes only from the head." /tail "Removes only from the tail." /auto "Auto indents lines relative to first line." /lines "Removes all line breaks and extra spaces." /all "Removes all whitespace." /with str [char! string!] "Same as /all, but removes characters in 'str'." ] sort* [ "Sorts a series." [catch] series [series! port! object!] /case "Case sensitive sort." /skip "Treat the series as records of fixed size." size [integer!] "Size of each record." /compare "Comparator offset, block or function." comparator [integer! block! function!] /part "Sort only part of a series." length [integer!] "Length of series to sort." /all "Compare all fields" /reverse "Reverse sort order" ] min* [ "Returns the lesser of the two values." [catch] value1 [number! pair! char! money! date! time! tuple! series! object!] value2 [number! pair! char! money! date! time! tuple! series! object!] ] max* [ "Returns the greater of the two values." [catch] value1 [number! pair! char! money! date! time! tuple! series! object!] value2 [number! pair! char! money! date! time! tuple! series! object!] ] abs* [ "Returns the absolute value." [catch] value [number! pair! money! time! object!] ] empty?* [ "Returns TRUE if a series is at its tail." [catch] series [series! port! bitset! object!] ] dismantle [ "Dismantles the value into pieces that can be used by REBUILD to recreate it" value [object!] ] series?* ["Returns TRUE for series values." value [any-type!]]