< Rebol Programming
USAGE:
TAKE value /part length /last
DESCRIPTION:
Copies and removes from series. (Modifies)
TAKE is a function value.
ARGUMENTS
- value -- (Type: series port none)
REFINEMENTS
- /part -- Limits to a given length or position
- length -- (Type: number series port pair)
- /last -- Take it from the tail end
(SPECIAL ATTRIBUTES)
- catch
SOURCE CODE
take: func [
"Copies and removes from series. (Modifies)"
[catch]
value [series! port! none!]
/part "Limits to a given length or position"
length [number! series! port! pair!]
/last "Take it from the tail end"
][
if value [
either part [
case [
pair? length [
unless image? value [
throw-error 'script 'invalid-part length
]
last: none
]
any [series? length port? length] [
either same? head value head length [
length: subtract index? length index? value
] [
throw-error 'script 'invalid-part reduce [length]
]
]
]
if last [
length: negate length
value: tail value
]
also copy/part value length remove/part value length
] [
also pick either last [
value: back tail value
] [value] 1 remove value
]
]
]
This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.