Function   함수

(2019-11-16)
1. 프로그램에서, 함수 이란?

  ㅇ 특정 기능을 수행하는 코드의 묶음  ☞ 부프로그램 서브루틴 함수 프로시저 비교 참조

  ※ 한편, 수학 함수와는 달리, 
     - 파라미터(입력),반환값(출력)이 없을수도 있음

  ※ 여러 프로그래밍 언어 상의 함수 例) ☞ C 함수, 자바스크립트 함수 등 참조

  
2. 함수 사용 장점프로그램 재사용으로 인한 절약
     - 메모리 공간, 코딩 시간의 절약, 프로그램 크기를 줄임 

  ㅇ 가독성 증가 
     - 1개 호출문에 의해 실행
        . 세부사항을 숨기면서 프로그램논리 구조를 강조함
           .. 사용자는 함수 호출이름,매개변수,기능 정도 만을 알면 됨

  ㅇ 유지보수확장성 용이, 문제 해결성 및 분할성 제고, 사용 용이 등


3. 함수의 구성 요소

  ㅇ 이름 (Name)
     - 수행 동작에 이름을 부여함

  ㅇ 매개변수/인수 (Parameter)
     - 함수에게 전달하는 정보

  ㅇ 출력 값 (Return Value)
     - 함수 수행 결과의 반환

  ㅇ 몸체 (Body)
     - 변수 선언 및 실행부

  ㅇ 참조 환경 (Reference Environment)
     - 참조될 수 있는 모든 변수들의 집합으로 그려지는 환경


4. 함수선언/정의/호출/문법

  ※ ☞ 함수 선언, 함수 정의, 함수 호출, 함수 문법 참조
     - 함수 선언 : 일련의 동작을 추상화시켜줌
     - 함수 정의 : 수행 동작을 자세하게 기술
     - 함수 호출 : 함수는 호출을 통해서 만 실행됨


5. 함수에서 매개변수 전달 방법의 종류

  ※ ☞ 매개변수 전달 기법 참조
     - 값 전달 (call by value) : 실 매개변수의 값을 형식 매개변수에 전달
     - 참조 전달 (call by reference) : 실 매개변수의 저장 장소를 전달
     - 이름 전달 (call by name) : 실 매개변수의 이름을 전달


6. 특별한 함수 응용 例)고차 함수
     - 함수인수(파라미터)로써 받을 수 있거나, 함수를 반환할 수 있는 함수클로저
     - 자기 자신이 정의된 환경으로부터, 함수자유 변수식별자 결정을 하는 기능 구조

  ㅇ 중첩 함수
     - 함수 내 또다른 함수로써 정의되는 함수메모이제이션
     - 재귀적 함수 호출에서, 중복 계산이 없도록, 한 번 계산된 값을 저장해서,
       프로그램이 빠르게 수행하는 기법

  ㅇ 화살표 함수
     - function 키워드 및 중괄호 {} 를 줄이려고 고안된 단축 문법콜백 함수
     - 함수(또는,객체)를 매개로 전달하고서, 그것으로하여금 역 호출 등을 하게 하는 기법


[부프로그램/함수/프로시저] 1. 부 프로그램 2. 함수 3. 함수 선언/정의/호출 4. 매개변수 5. 콜백 함수 6. 블록 구조 7. 클로저

 
        최근수정     요약목록     참고문헌