Rebol выбрать как функцию, возвращающую больше, чем просто следующее значение? - PullRequest
0 голосов
/ 31 декабря 2010

Это существует?Если нет, то какой лучший способ его создать?

Ответы [ 2 ]

4 голосов
/ 01 января 2011

Если вы хотите вернуть все значения после целевого значения, вы можете использовать следующий поиск

например:

data: copy [1 2 3 4 5 6 7 8 9]
select data 5
== 6            ;; returns the next value only.
find data 5
== [5 6 7 8 9]  ;; returns the series at that point, so ...
next find data 5
== [6 7 8 9]    ;; ... returns the series after that point.

Если вам просто нужны следующие N элементов, добавьте копию / часть ... N

например (следующие три элемента):

copy/part next find data 5 3
== [6 7 8]

Я уйдудобавить код ошибки, если значение не найдено:

next find data 0
3 голосов
/ 04 января 2011

Используйте находку / хвост,

>> find/tail [a b c d e] 'c
== [d e]
>> find/tail [a b c d e] 'x
== none
...