0. κ²°λ‘ 

foldLeftλŠ” 더 μœ μ—°ν•˜κ³  μ•ˆμ „ν•˜λ©° λ‹€μ–‘ν•œ 상황에 μ ν•©ν•˜μ§€λ§Œ, reduceλŠ” λ‹¨μˆœν•œ μΆ•μ†Œ μž‘μ—…μ—μ„œ κ°„κ²°ν•˜κ³  νš¨μœ¨μ μž…λ‹ˆλ‹€. μž‘μ—…μ˜ μš”κ΅¬ 사항에 따라 μ ν•©ν•œ λ©”μ„œλ“œλ₯Ό μ„ νƒν•˜μ„Έμš”!

μ‚¬μš© μΆ”μ²œ foldLeft reduce
λΉ„μ–΄ μžˆλŠ” μ»¬λ ‰μ…˜ βœ… μ•ˆμ „ ❌ μ˜ˆμ™Έ λ°œμƒ
λ‹¨μˆœ μΆ•μ†Œ (동일 νƒ€μž…) βœ… κ°€λŠ₯ βœ… 적합
μ΄ˆκΈ°κ°’ ν•„μš” μ—¬λΆ€ βœ… λͺ…μ‹œμ μœΌλ‘œ 제곡 ❌ μ—†μŒ
λ³΅μž‘ν•œ 좕적 둜직 βœ… μœ μ—° ❌ μ ν•©ν•˜μ§€ μ•ŠμŒ

1. foldLeft

νŠΉμ§•:

문법:

collection.foldLeft(initialValue: B)((acc: B, elem: A) => accUpdated: B)

예제:

val numbers = List(1, 2, 3, 4)

// 합계λ₯Ό 계산 (μ΄ˆκΈ°κ°’ 0)
val sum = numbers.foldLeft(0)(_ + _)
println(sum) // 10

// λ¬Έμžμ—΄ λ³€ν™˜ (μ΄ˆκΈ°κ°’μ€ 빈 λ¬Έμžμ—΄)
val concatenated = numbers.foldLeft("")((acc, elem) => acc + elem.toString)
println(concatenated) // "1234"

2. reduce

νŠΉμ§•:

문법: