将块的最后一项移动到开头

这个单线程说明了一些基本的系列操作。

在分析之前,我们将启动一个被操作的块:

stuff: [chair lamp table book carpet]

现在我们的单行:

head insert stuff take back tail stuff

在这个例子中有五个操作,每个操作都很重要,理解 Rebol 函数通常返回有用的值。这允许将函数链接到相对简洁的语句中。

我们将从右到左执行此分析:

尾巴的东西

Rebol 块系列与其他语言中的数组类似,它们是具有 x 个值的抽象集合。然而,它们也可以在头部(在第一个值之前)和尾部(在最后一个值之后)之间的任何位置被引用。

原生 tail 将返回尾部的块。

背(尾巴的东西)

类似地,back 将在其当前位置之前立即返回该块。在这种情况下,在尾部,back 将在倒数第二个位置返回块。

拿(后尾的东西)

take 执行两个操作 - 它在当前位置之后立即返回值,同时将其从块中移除。

插入东西(收回尾巴的东西)

insert 将值放入当前位置的块中,并在放置值后立即返回块。请注意,stuff 在块的开头保留它的位置 - 在任何时候都不会重新分配另一个位置 - 语句的后半部分(取值)是自包含的。

头(插入……)

最后 head 返回块的开头。虽然这里的 insert 是在块的开头使用的,但是在放置值之后它会在开始后的一个位置返回块。