다음: 붙박이 정의 함수, 이전: 함수 다루개, 상위 문서: 함수 다루개, 익명 함수, 붙박이 정의 함수   [차례][찾아보기]


11.11.2 익명 함수

익명 함수는 아래 구문으로 정의합니다.

@(매개변수-목록) 표현식

매개변수 목록에 없는 변수는 괄호 안 범위에서 상속받습니다. 표현식으로 간단한 이름 없는 함수 만들거나 quad 같은 다른 함수에 묶어 호출하기에 익명 함수가 좋습니다. 예를 들어,

f = @(x) x.^2;
quad (f, 0, 10)
    ⇒ 333.33

는 표현식 x.^2으로 간단한 익명 함수를 만들고, 이를 quad에 전달합니다.

quad (@(x) sin (x), 0, pi)
    ⇒ 2

위 표현식은 다른 함수를 에워싸

a = 1;
b = 2;
quad (@(x) betainc (x, a, b), 0, 0.4)
    ⇒ 0.13867

quad가 요구하는 형식으로 함수와 그 매개변수를 끼워 맞춥니다. 이 예시에서, betainc에 전달한 ab의 값은 현재 환경에서 물려받습니다.

성능상 이유로 존재하는 함수를 감싼 익명 함수를 정의하는 편보다 존재하는 옥타브 함수에 다루개를 사용하는 편이 좋습니다. sin (x)의 적분을 아래 부호처럼 써야

quad (@sin, 0, pi)

익명 함수 @(x) sin (x)를 쓰는 것보다 5배는 더 빠릅니다. 익명 함수보다 괜찮은 기능이 같은 연산자가 여럿 있습니다. 아래보다는

f = @(x, y) x + y

다음이 낫습니다.

f = @plus

함수 형식이 있는 연산자 목록을 보려면 연산자 과적재를 보십시오.


다음: 붙박이 정의 함수, 이전: 함수 다루개, 상위 문서: 함수 다루개, 익명 함수, 붙박이 정의 함수   [차례][찾아보기]