-
Eval and Trampoliningscala/cats2 2023. 7. 29. 11:43
scala with cats 에 나오는 Eval.defer 를 이용한 factorial 구현
def factorial(n: BigInt): Eval[BigInt] = if(n == 1) { Eval.now(n) } else { Eval.defer(factorial(n - 1).map(_ * n)) } factorial(50000).value
내가 생각해본 Eval.defer 를 사용하지 않고 factorial 구현
def factorial(n: BigInt): Eval[BigInt] = { if (n == 1) Eval.now(n) else { for { x <- Eval.now(n) y <- factorial(n-1) } yield x * y } }
'scala > cats2' 카테고리의 다른 글
Future Traverse (0) 2023.02.13 Ior (1) 2023.01.29 Cats2 Exercise (0) 2023.01.22 Validated (0) 2023.01.19 Writer (0) 2023.01.19