如何计算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
是找出此问题的唯一方法。)