문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. [[분류: 프로그래밍 언어]] == 개요 == First-order 함수는 function의 인자로 다른 함수를 받거나, return으로 함수를 내보내지 못하는 함수를 의미한다. Environment(Env)를 다음과 같이 Id를 특정 값으로 매핑하는 집합이라고 하자 (즉, val x= 5; 에서 x가 어떤 값인지를 찾아주는 집합이다). 이떄 Env 를 다음과 같이 정의하면: :<math>Env \,\, \sigma \in Id \rightarrow (Id \times Expr) </math> First-order 함수(Func, <code>Func(x) => e</code>)는 다음과 같이 정의할 수 있다. :<math>\begin{array}{c} {x\in\mathit{Domain}(\sigma) } \\\hline {\sigma,Func\vdash x\Rightarrow \sigma(x)} \end{array}</math> * Domain의 의미는 x가 함수가 받는 인자와 같은 타입임을 의미한다. [[Abstract syntax]]를 통해서 나타내면 다음과 같다. <syntaxhighlight lang="scala"> case App(f, a) => val (x, e) = lookupFD(f, fEnv) interp(e, Map(x -> interp(a, env, fEnv)), fEnv) </syntaxhighlight> == 참고 == # https://hjaem.info/articles/en_10_7 First-order function 문서로 돌아갑니다.