2012-10-05 5 views

답변

2

여기에는 옵션이없는 것으로 나타나지만 DictionaryLookup의 정의를 사용자에게 맞게 수정할 수 있습니다.

내가 사용할 방법은 DownValues의 자동 순서에 의존하며 버전 7 용으로 작성되었으므로 조정이 필요할 수 있습니다. DownValues[DictionaryLookup]에서 함수가 어떻게 쓰여지는지 알 수 있습니다. 최상위 레벨은 입니다. Mathematica 코드입니다.

$dictionaryLanguage = "Spanish"; 

Unprotect[DictionaryLookup]; 

DictionaryLookup[pat : Except[_List], x___] /; 
    ! TrueQ[$dicLang] && ValueQ[$dictionaryLanguage] := 
Block[{$dicLang = True}, 
    DictionaryLookup[{$dictionaryLanguage, pat}, x] 
    ] 

DownValues[DictionaryLookup] = 
    RotateRight @ DownValues[DictionaryLookup]; 

Protect[DictionaryLookup]; 

이 정의에서 $dictionaryLanguage으로 설정하면 해당 값이 언어에 사용됩니다. $dictionaryLanguage =.으로 기본 동작을 복원 할 수 있습니다. 예 :

$dictionaryLanguage = "Spanish"; 

DictionaryLookup["*orac*", 3] 

{ "adoración", "aminoración", "colaboración는"}

$dictionaryLanguage =.; 

DictionaryLookup["*orac*", 3] 

{ "coracle", "coracles", "호레이스"}

DictionaryLookup 외부의 조회를 호출한다고 알고 있습니다. 이 같은 언어의 사전을로드 할 수 DataPaclets`Dictionary`$Dictionary에 데이터를 배치

DataPaclets`Dictionary`ReloadDictionary["Dutch"] 

합니다. 예 검색 :

Pick[#, # ~StringMatchQ~ "*fzand*"] ~Take~ 4 & @ DataPaclets`Dictionary`$Dictionary 

{ "afzand", "afzandde", "afzandden", "afzanderij는"}

등가 DictionaryLookup 쿼리

DictionaryLookup[{"Dutch", "*fzand*"}, 4] 

{ "afzand", "afzandde", "afzandden", "afzanderij"}

당신이 컨텍스트 경로에 자주 할 수 그들을 이러한 도구를 사용하는 경우

:

AppendTo[$ContextPath, "DataPaclets`Dictionary`"] 

그런 다음 상황에 맞는 이름없이 그대로 ReloadDictionary$Dictionary을 사용할 수 있습니다.

관련 문제