如何计算Rebol3中的本机函数数?

(帮助本机!中打印本机函数,但不返回字词。)

更新:我已经纠正了@HostileFork突出显示的错误后的问题。

最佳答案

在引导时会建立一个本地目录(或至少其名称的单词):

>> length? system/catalog/natives
== 160

lib中的定义不仅仅是本机例程。类型集和其他事物的定义。但是几乎每个本机都可以在启动时通过它进行访问:
>> natives: []

>> foreach [word value] lib [if native? :value [append natives word]]

>> length? natives
== 168

其中一些差异是由同义词造成的(Q表示QUIT,---表示COMMENT等):
>> difference natives system/catalog/natives
== [native action q ! min max --- bind? pwd context]

NATIVE和ACTION很特殊,无论出于何种原因,都不要将其列入目录。

(请注意,在Ren-C build of Rebol3的当前演变中,只有一种FUNCTION!数据类型。因此,没有NATIVE?或ACTION?等。因此,system/catalog/natives是找出此问题的唯一方法。)

10-06 09:36