|
A function that can be used in Formulas.
part#
(vector#
, from
, to
)
assert part# ({ 7, 4, 99, 103, 1 }, 3, 4) = { 99, 103 }
Checks on the number of arguments (always has to be 3):
asserterror The function “part#” requires exactly three arguments
... (namely a vector, a starting index, and an end index),
... not the 0 given.
a# = part# ()
asserterror The function “part#” requires exactly three arguments
... (namely a vector, a starting index, and an end index),
... not the 5 given.
a# = part# (7, 8, 9, "hello", "world")
Checks on the types of the arguments (always has to be vector, number, number):
asserterror The first argument of the function “part#” should be
... a numeric vector, not a number.
a# = part# (2, 4, { 5, 6, 7, 9, 8 })
asserterror The first argument of the function “part#” should be
... a numeric vector, not a string.
a# = part# ("hello", 4, { 5, 6, 7, 9, 8 })
asserterror The second argument of the function “part#” should be
... a number (the starting index), not a string.
a# = part# ({ 5, 6, 7, 9, 8 }, "hello", 4)
asserterror The second argument of the function “part#” should be
... a number (the starting index), not a numeric vector.
a# = part# ({ 5, 6, 7, 9, 8 }, { 0 }, 4)
asserterror The third argument of the function “part#” should be
... a number (the end index), not a string.
a# = part# ({ 5, 6, 7, 9, 8 }, 4, "hello")
asserterror The third argument of the function “part#” should be
... a number (the end index), not a numeric vector.
a# = part# ({ 5, 6, 7, 9, 8 }, 4, { 0 })
Finally the checks on the preconditions of the arguments: both element numbers should be within bounds:
asserterror The second argument of the function “part#” (the starting index)
... should (after rounding) be a positive whole number, not -3.
a# = part# ({ 5, 6, 7, 9, 8 }, -2.98, 0)
asserterror The second argument of the function “part#” (the starting index)
... should (after rounding) be a positive whole number, not 0.
a# = part# ({ 5, 6, 7, 9, 8 }, 0, 0)
asserterror The second argument of the function “part#” (the starting index)
... should (after rounding) be at most the number of elements (5), not 99.
a# = part# ({ 10, 6, 7, 9, 8 }, 99, 0)
asserterror The second argument of the function “part#” (the starting index)
... should (after rounding) be at most the number of elements (5), not 6.
a# = part# ({ 10, 6, 7, 9, 8 }, 5.5, 0)
asserterror The third argument of the function “part#” (the end index)
... should (after rounding) be a positive whole number, not -3.
a# = part# ({ 10, 6, 7, 9, 8 }, 3, -2.98)
asserterror The third argument of the function “part#” (the end index)
... should (after rounding) be a positive whole number, not 0.
a# = part# ({ 10, 6, 7, 9, 8 }, 3, 0)
asserterror The third argument of the function “part#” (the end index)
... should (after rounding) be at most the number of elements (5), not 99.
a# = part# ({ 10, 6, 7, 9, 8 }, 3, 99)
asserterror The third argument of the function “part#” (the end index)
... should (after rounding) be at most the number of elements (5), not 6.
a# = part# ({ 10, 6, 7, 9, 8 }, 3, 5.5)
© Paul Boersma 2023