-
어떻게 함수를 설계할까컴공지식/프로그래밍언어론 2024. 8. 31. 23:22
- 계약(Contract): 함수의 입력과 출력의 타입을 정의.
- 목적(Purpose): 함수가 하는 일을 설명.
- 테스트(Tests): 함수가 올바르게 동작하는지 확인.
- 헤더(Header): 함수의 정의와 매개변수, 반환 타입을 명시.
- 본문(Body): 함수의 실제 동작을 구현.
다음을 모두 만족시키도록 함수를 설계하자.
예를 들어 정사각형의 넓이를 구하는 함수를 설계한다고 해보자.
계약 단계에서 입력으로는 정사각형의 한 변의 길이인 정수 타입 a를 정의하고 정수 타입 넓이인 w를 정의하고
목적으로는 정사각형의 넓이를 구한다고 할 수 있다.
테스트로는 4를 넣으면 16이 반환되는지 테스트 해볼 수 있다.
헤더에는 areaOfSquare이라고 함수를 정의하고 매개 변수로는 a, 그리고 반환타입으로는 정수형인 Int를 붙일 수 있겠다.
본문에는 a * a와 같이 정사각형의 넓이를 구하는 코드를 작성해주면 된다.
이를 코드로 옮기면 다음과 같다.
// 계약: areaOfSquare: Int -> Int
// 목적: 정사각형의 넓이를 구한다
// 테스트: areaOfSquare(4) == 16
def areaOfSquare(a: Int): Int = {
a * a
}
// 테스트 실행
assert(areaOfSquare(4) == 16, "Test failed for areaOfSquare(4)")이렇게 함수를 체계적으로 설계할 수 있다.
'컴공지식 > 프로그래밍언어론' 카테고리의 다른 글
프로그래밍 패러다임 (0) 2024.09.02 테스트 주도 개발(TDD, Test-Driven Development) (0) 2024.08.31 패턴 매칭 vs if-else 절 (0) 2024.08.31 스칼라의 패턴 매칭 (0) 2024.08.31 스칼라에서 타입을 정의하는 방법 (0) 2024.08.31