scala/functional programming
1.4 조건과 값 정의
wefree
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