# Steps to define recursive function > 재귀 함수 작성하기 <재귀 함수> 작성하기 ## Graham Hutton의 재귀 함수 작성법 에서 재귀 함수 작성 절차를 아래와 같이 설명한다(2판 기준). - Step 1. 타입을 정의한다. - Step 2. 사례를 열거한다. - Step 3. 단순한 사례를 정의한다. - Step 4. 나머지 사례를 정의한다. - Step 5. 일반화 및 단순화를 한다. [동영상 강의](https://www.youtube.com/watch?v=n6bg8L91Qew)에서는 일곱 단계로 조금 더 잘게 나눴다. - Step 1. 함수 이름을 정한다. (추가된 단계) - Step 2. 타입을 정의한다. - Step 3. 사례를 열거한다. - Step 4. 단순한 사례를 정의한다. - Step 5. "재료"를 열거한다. (추가된 단계) - Step 6. 나머지 사례를 정의한다. - Step 7. 결과에 대해 생각해본다. ## See also - [Loop invariants](https://wiki.g15e.com/pages/Loop%20invariants.txt)