2 minute read


04.18 2주차 수업 내용 정리

비교 연산자, 논리 연산자

  • bool 값은 직접 사용하는 것보다, 조건문으로 사용하거나 실행의 결과로써 받는 일이 많다.
  • 같은 자료형의 데이터라면 거의 모든 값을 비교 가능. >=, <=, >, <, =, <> 등.
  • 논리 연산&&, ||, not으로 이루어진다.
  • 문자열은 아스키코드 등록 순서에 따라 비교된다.



조건문

  • if 조건 then 식 1 else 식 2: 조건이 참이면 식 1을 실행, 아니라면 식 2를 실행한다.
(* x의 절댓값을 출력하는 함수 *)
(* - 연산자를 이항연산뿐 아니라 단항연산에도 사용할 수 있음 *)
let abs_value x = if x > 0.0 then x else -. x 
  • OCaml 조건문의 규칙
    1. 조건 부분은 무조건 bool 자료형이어야 한다. 타 언어에서는 0을 조건으로 사용하기도 하나, OCaml은 불가능.
    2. 식 1과 식 2는 반드시 같은 자료형을 가져야 한다. 조건문의 결과가 또 다른 프로그램에 가져다 쓰일 수 있기 때문이다.



디자인 레시피

  • 함수를 작성할 때의 지침이 되는 것.
    1. 목적: 무엇을 받아 무엇을 돌려 줄 것인가? 어떤 자료형을 이용할 것인가? 예시: chocolate: int -> int
    2. 예시: 구체적 입력 예시를 복수 개 들 것. 실제 입력과 그에 따른 출력을 복수 개 저장해 테스트 프로그램으로 삼음. 예시: let test1 = (chocolate 100 = 0)
    3. 프로그램의 본체를 작성
    4. 실제 테스트



함수와 조건문

  • 함수와 조건문은 여러 줄에 걸쳐 작성할 수 있다.
let kyuyo x =
	if x < 30 then kihonkyu + x * jikyu
		else kihonkyu + x * yugu_jikyu

(* 위 코드에서 kihonkyu + x 부분이 중복되므로 아래와 같이 작성하면 효율적 *)
let kyuyo x =
	kihonkyu + x * (if x < 30 then jikyu else yugu_jikyu)
  • 위와 같이, OCaml에서는 if문을 다른 식 안에 넣어 사용할 수 있다.


진위값을 반환하는 함수

  • 아래는 현재 기온 t를 int 자료형으로 받고, 그 값이 15 이상 25 이하라면 “快適”을, 이외에는 “普通”을 반환하는 함수 kion이다.
let kion t = if 15 <= t && t <= 25 then "快適" else "普通"
  • 여기서 t가 15 이상 25 이하인지 체크하는 함수 kaiteki를 분리해 따로 작성한다.
let kaiteki t = 15 <= t && t <= 25
  • 함수 kion 내에서 다른 함수 kaiteki를 호출해 코드를 간결하게 작성할 수 있다.
let kion t = if kaiteki t then "快適" else "普通"


조건 분기의 실행 과정

  • 조건 분기 시, 실행은 크게 조건 부분의 실행then 또는 else 부분의 선택으로 이루어진다.
  • x의 값이 31일 때 let kyuyo x = kihonkyu + x * (if x < 30 then jikyu else yugu_jikyu)의 실행 과정
    1. 함수의 내용 전개와 인수의 치환: x를 31로 대체한다.
    2. 차례로, 변수 kihonkyu를 만나면 이를 100으로 대체한다.
    3. if문의 조건을 먼저 실행한다.
    4. 조건부의 결과에 따라 식 1, 식 2 중 하나를 실행한다.