2011-07-26 2 views
12

Mathematica의 1000 개가 넘는 내장 된 재 작성 규칙은 기본적으로 전역 규칙 테이블을 채 웁니다. Mathematica에 규칙의 전체 또는 일부 목록을 제공 할 수있는 방법이 있습니까?Mathematica의 내장 전역 재 작성 규칙 목록을 얻으려면 어떻게해야합니까?

+0

옵션과 같은 의미인가요? 노트의 모든 옵션을 보려면'Options [Notebook]'을 실행하면 모든 노트를 볼 수 있습니다. 어떤 개체로도이 작업을 수행 할 수 있습니다. 이것이 재 작성 규칙의 의미입니까? – jmlopez

답변

11

가장 좋은 방법은 Wolfram Research에서 일하는 것입니다.

커널에 완전히 컴파일되지 않은 것들에 대해서는 대부분의 규칙/정의를 복구 할 수 있다고 생각합니다. fn 당신이 관심있는 명령입니다

Attributes[fn] 

봐.이

{Protected, ReadProtected} 

을 반환하는 경우 종종 그냥 MakeBoxes (형식 비록 당신이 (봐 얻을 수있는 무언가가)있다 정의 또는 자동로드/스텁 유형 정의). 무엇이 실행되고 있는지보기

Unprotect[fn]; 
ClearAttributes[fn, ReadProtected]; 
??fn 

꽤 자주 스텁 인 경우 명령을 실행하여 명령을로드해야합니다. 또한 사용자 지향 명령에서 백엔드 구현까지 파고들 필요가 있습니다. 결국 커널에 컴파일 된 핵심 명령에 도달 할 가능성이 높으므로 세부 정보를 볼 수 없습니다.

나는 이전에 tips for creating Graph diagrams에서 이것을 언급했으며 What is in your Mathematica tool bag?에 언급이 있습니다.

좋은 예를 들면, 바이트 크기와 소화가 잘되는 비트 코드는 에 언급 된 Experimental`AngularSlider[]입니다. 내가 제작 한 코드를 보도록하겠습니다.

또 다른 예는 BoxWhiskerChart과 같으며 코드를 모두로드하기 위해 한 번 호출해야합니다. 그러면 BoxWhiskerChartCharting`iBoxWhiskerChart으로 전화를 걸어보고 보호를 해제해야합니다.

+2

통합 및 합계 규칙과 같이 Mathematica가 알고있는 정말로 흥미로운 규칙 (적절한 정보를 나타내는 것들)의 대부분은 접근 할 수 없다는 것을 언급해야합니다. – Simon

+1

이런 식으로 일부 내장 소스를 얻을 수는 있지만 출력되는 코드는 일반적으로 읽을 수없는 엉망입니다 (주로 앞에 붙은 컨텍스트와 들여 쓰기 부족으로 인해). 더 읽기 쉽도록하기 위해 보통 무엇을 사용합니까? – Szabolcs

+1

@Szabolcs :'$ ContextPath'에 컨텍스트를 추가하면 첫 번째 문제가 해결됩니다. 그런 다음 코드를 새로운 입력 셀에 복사하면 두 번째 문제가 다소 도움이됩니다. – Simon