-
1.4 조건과 값 정의scala/functional programming 2024. 4. 4. 19:47
Short circuit evaluation
표현식을 평가하지 않아도 결과를 알 수 있는 것을 단락평가(short circuit evaluation) 이라고 한다. 다음 예를 보자.
false && e // false (e 의 평가와 관계 없이) true || e // true (e의 평과와 관계 없이)
Value definitions
def loop: Boolean = loop val x = loop // infinite loop def x = loop // OK
다음 function 을 if 를 사용해 구현해 보자.
and(x, y) == x && y
- call by value 구현
def and(x: Boolean, y: Boolean): Boolean = if x then y else false def loop: Boolean = loop and(false, loop) // infinite loop
- call by name 구현
def and(x: Boolean, y: => Boolean): Boolean = if x then y else false def loop: Boolean = loop and(false, loop) // false
'scala > functional programming' 카테고리의 다른 글
1.6 블록과 어휘 범위 (0) 2024.04.04 1.5 예제: 뉴턴의 방법을 사용한 제곱근 (0) 2024.04.04 1.3 평가 전략 및 종료 (0) 2024.04.04 1.2 프로그래밍의 요소 (0) 2024.04.04 Scala의 함수형 프로그래밍 원칙 (0) 2024.04.04