跳转到内容

Rebol 编程/内部

来自 Wikibooks,开放世界中的开放书籍

Rebol 内部

[编辑 | 编辑源代码]

系统对象

[编辑 | 编辑源代码]

系统对象是一个非常大的对象,包含 Rebol 中的大部分中间层代码,即 VID、网络协议和有关您正在运行的 Rebol 产品的系统信息。

原生函数

[编辑 | 编辑源代码]

原生函数是硬编码到 Rebol 内核中的函数。它们可以被认为是低级函数,旨在提高速度。存在大量的原生函数。

您可以在控制台中像这样显示一个原生函数

>> source insert
insert: native [
    {Inserts a value into a series and returns the series after the insert.} 
    series [series! port! bitset!] "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!] 
    /only "Inserts a series as a series." 
    /dup "Duplicates the insert a specified number of times." 
    count [number! pair!]
]

由于函数已编译到 Rebol 解释器内核中,因此无法查看源代码。

中间层函数

[编辑 | 编辑源代码]

中间层函数是在原生函数或其他中间层函数之上构建的函数。这意味着您可以更改它们或在现有函数之上构建更多函数。Rebol 在其所有产品中都内置了许多中间层函数。

它们可以被认为是更高级别的函数,旨在为编写 Rebol 程序提供易用性。Rebol 中的互联网协议,例如 HTTP 或 POP3,都是作为中间层函数构建的。

在设计自己的程序时,您可以构建自己的函数,这些函数与现有的中间层函数融为一体,例如,如果您希望使用新的互联网协议扩展 Rebol。

中间层函数还很特别,因为您可以在控制台中像这样查看它们的源代码

>> source append
append: func [
    {Appends a value to the tail of a series and returns the series head.} 
    series [series! port!] 
    value 
    /only "Appends a block value as a block"
] [
    head either only [
        insert/only tail series :value
    ] [
        insert tail series :value
    ]
]
华夏公益教科书