다음: 대본 기록철, 이전: 기본 매개변수, 상위 문서: 함수와 대본   [차례][찾아보기]


11.9 함수 기록철

단순한 일회성 풀그림을 제외하고는, 필요할 때마다 모든 함수를 정의하면 낭비가 큽니다. 대신, 함수를 기록철에 저장하여 두어 고치기도 편하고, 나중에 다시 쓰기도 편하기를 많이들 원합니다.

옥타브는 함수를 사용하기 전에 함수 정의를 기록철에서 불러올 것을 요구하지 않습니다. 그저 옥타브가 찾을 수 있는 곳에 함수 정의를 두기만 하면 됩니다.

옥타브가 정의하지 않은 색인자를 만나면, 먼저 이미 번역되어 현재 상징표에 변수와 함수로 기록되어 있는지 살핍니다. 상징표에서 정의를 못 찾으면, 자료방 목록(경로)에서 확장자가 .m이면서 기본 이름이 정의하지 않은 식별자와 같은 기록철을 찾습니다.5 이름이 일치하는 기록철을 찾으면, 기록철의 내용을 읽습니다. 정의가 단일 함수이면, 번역하여 실행합니다. 기록철 하나에 여러 함수를 정의하는 더 많은 정보는 대본 기록철을 참고하십시오.

함수 기록철로 함수를 정의하면, 기록철을 읽기 위한 기록철의 전체 이름과 날짜 도장을 저장합니다. 기록철의 날짜 도장이 달라지면, 기록철을 다시 적재합니다. 옥타브가 대화형으로 실행 중이면, 보통 날짜 도장 확인을  대부분 명령 처리기를 출력할 때마다 합니다. 또한, 현재 작업 자료방이 바뀌면 새로 함수 정의를 찾습니다.

날짜 도장을 확인하여, 옥타브 실행 중에도 함수 정의를 바꾼 후, 옥타브 작업을 다시 시작할 필요 없이 자동으로 새 함수 정의를 사용합니다.

잘 바뀌지 않는 함수의 날짜 도장을 굳이 확인하여 성능이 저하되는 것을 막기 위하여, 자료방 나무꼴 octave-home/share/octave/version/m에 있는 함수는 바꾸지 않는다고 가정하여, 이들 함수가 정의되어 있는 기록철의 날짜 도장을 확인하지 않습니다. 상당히 괜찮은 가정이고, 옥타브와 함께 배포된 함수 기록철을 처리하는데 눈에 띄는 성능 향상이 있습니다.

옥타브 실행 중에 자체 제작 함수가 바뀔 일이 없으면, ignore_function_time_stamp ("all")을 호출하여 모든 함수 기록철의 날짜 도장 확인을 건너뛰어 성능을 향상시킬 수 있습니다. 이 함수에 "system"를 전달하면, 기본 방식으로 돌아갑니다.

edit 이름
edit 기록란 값
= edit ("get", 기록란)
= edit ("get", "all")

이름이 있는 함수를 고치거나, 편집기 설정을 바꿉니다.

edit에 기록철 이름이나 함수 이름을 매개변수로 주면, 매개변수를 EDITOR에 지정한 글월 편집기로 엽니다.

edit기록란 변수를 주어 호출하면, 제어 기록란 기록란에 딸린 값을 으로 설정합니다.

출력 매개변수를 요청하고, 첫 번째 입력 매개변수가 get이면, 제어 기록란 기록란의 값을 반환합니다. 제어 기록란이 없으면, 모든 기록란과 값을 담은 구조체를 반환합니다. 그러므로 edit ("get", "all")가 전체 제어 구조체를 반환합니다.

아래 제어 기록란을 사용합니다.

home

사용자 울안 m 기록철의 위치 입니다. 사용자 경로로 설정합니다. 기본값은 ~/octave입니다.

author

"## Author:" 옆에 넣을 이름입니다. 새 함수의 기록란입니다. 기본적으로 비밀번호 자료기지의 gecos 기록란에서 가져옵니다.

email

author 기록란의 이름 옆에 넣을 전자 우편 주소 목록입니다. 기본적으로 <$LOGNAME@$HOSTNAME>에서 가져오며, $HOSTNAME가 정의되지 않았으면, uname -n를 사용합니다. 대신 사용하고 싶은 주소가 있을 것입니다. 사용자@주인 꼴을 사용하십시오.

license
gpl

그누 일반 공중 사용 허가서(기본)

bsd

홍보 조항을 뺀 버클리 무른모 배포(BSD)의 허가서입니다.

pd

자유 이용 저작물입니다.

"text"

사용자 정의 저작권과 허가서입니다.

pd’로 지정하지 않는 한, 저작권 문구에 "Copyright (C) YYYY Author"를 붙입니다.

mode

이 값이 편집기를 비동기로 시작할지(편집기를 뒷면에서 시작하고, 옥타브는 자기 갈 길 갑니다.) 동기로 시작할지(편집기가 끝날 때까지 옥타브가 기다립니다.) 결정합니다. "sync"로 설정하면 동기식으로 시작합니다. 기본값은 "async"입니다.(체계 참고)

editinplace

기록철의 수정 가능 여부에 상관 없이 기록철을 제 위치에서 편집할지 결정합니다. 기본값은 false입니다.

mfilename ()
mfilename ("fullpath")
mfilename ("fullpathext")

현재 실행한 기록철의 이름을 반환합니다.

현재 실행한 대본이나 함수의 기본 이름을 확장자 없이 반환합니다. 명령줄 등 m 기록철 밖에서 호출하면, 빈 문자열을 반환합니다.

매개변수 "fullpath"를 주면, 자료방 경로도 기록철 이름에 붙이되 확장자 없이 반환합니다.

매개변수 "fullpathext"를 주면, 자료방 경로도 기록철 이름에 붙이고 확장자도 붙여 반환합니다.

같이 보기: inputname, dbstack.

= ignore_function_time_stamp ()
옛_값 = ignore_function_time_stamp (새_값)

함수 기록철에 정의된 함수를 사용할 때마다 기록철의 날짜 도장을 확인할지 결정하는 내부 변수를 조회 또는 설정합니다.

내부 변수가 "system"이면, octave-home/lib/version의 하위 자료방의 내용이 마지막 번역시와 달라도 자동으로 번역하지 않으나, 검색 경로에 있는 다른 함수는 바뀌면 자동으로 번역합니다.

내부 변수가 "all"이면, 함수 정의를 clear으로 지우지 않는 이상 어떤 함수 기록철도 다시 번역하지 않습니다.

내부 변수가 "none"이면, 함수를 정의한 기록철을 다시 번역하여야 하는지 날짜 도장을 매번 검사합니다.


각주

(5)

매트랩과의 호환을 위하여 ‘.m’ 확장자를 사용합니다.


다음: 대본 기록철, 이전: 기본 매개변수, 상위 문서: 함수와 대본   [차례][찾아보기]