2016-12-30 5 views
3

어떻게 Rebol3에서 기본 함수를 계산합니까?네이티브 수는 얼마입니까? Rebol3에서

(! lib 디렉토리에 도움 네이티브 인쇄 기본 기능하지만 단어의 블록을 반환하지 않습니다.)

업데이트를 : 나는 @HostileFork에 의해 강조 오류 후 질문을 수정했다.

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

:

+0

'lib'이란 무엇입니까? –

+0

** 유형? : val = native! **는 효과적으로 ** 유형입니까? (: val = native!) **, "truthy"값인 LOGIC! 데이터 유형입니다. 그러므로 이것은 lib의 모든 선언을 제공합니다. – HostileFork

+1

@GeekyI'lib'는'system/contexts/lib'와 같은 컨텍스트의 별명입니다. 그것은 모든 부트 스트랩 정의가있는 곳입니다. 일반적으로 쓰는 사용자 컨텍스트 ('system/context/user')는 처음에는 이러한 정의의 복사본입니다. 그러나 lib는 여전히 사용할 수 있으므로'print : func [x] [...]'와 같은 것을 겹쳐 쓰더라도'lib/print'를 통해 원래의 정의로 돌아갈 수 있습니다. – HostileFork

답변

3

원주민의 카탈로그 (또는 이름의 최소 단어에서) 부팅시 내장의 "최근"빌드 나에게 (700)을 제공합니다 lib에는 원시 루틴보다 많은 정의가 있습니다. typesets 및 다른 것들의 정의. 그러나 거의 모든 네이티브 시작할 때 그것을 통해 액세스 :

>> difference natives system/catalog/natives 
== [native action q ! min max --- bind? pwd context] 

NATIVE :

그 차이의 약간은 동의어로 회계 처리하고 있습니다
>> natives: [] 

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

>> length? natives 
== 168 

(Q는 QUIT에 대한 --- COMMENT 등을위한) 및 ACTION은 특별하며 어떤 이유로 든 카탈로그에 포함시키지 마십시오.

합니다 (Ren-C build of Rebol3의 현재 진화의 해당 주, 단 하나의 기능이있다! 데이터 타입. 더 NATIVE? 또는 조치가 없다 그래서? 등 따라서, system/catalog/natives이를 찾을 수있는 유일한 방법입니다.)

+0

감사합니다. @HostileFork, 당신은 매우 분명했습니다. 코드에서 바보 같은 오류가 발생하여 미안합니다. 질문을 수정하기에는 너무 늦었다 고 생각합니다. Ren-C에서 FUNCTION과 액션 사이에 구별이 없습니다. 와 네이티브! ? – noein

+0

@noein [채팅보기] (http://chat.stackoverflow.com/transcript/message/34874083#34874083) – HostileFork

0
num: 0 
foreach [w val] lib [if type? :val = native! [++ num]] 

는 REBOL-3

+0

알아요. 150-200이어야합니다. 이런 이유로, 저에게 사용 된 방법은 잘못되었습니다. – noein

+0

'유형? : val = native!'는 LOGIC입니다! – HostileFork