(์ ํธ์์ koka ์ฝ๋๋ ๊ทธ๋ ๊ณ ์ด ํธ์์ effekt ์ฝ๋๋ ๊ทธ๋ ๊ณ ๊ท์ฐฎ์์ ๋์ถฉ Gemini ์์ผฐ๋ค. ํ๋ ค๋ ์ํด ๋ฐ๋๋ค)
๋ฐ๋ฉด Effekt์ Capability Passing Style ๋ฉํ ๋ชจ๋ธ๋ก ์๊ฐํ๋ฉด ์ฝ๊ฐ ์์์ด ๋ฌ๋ผ์ง๋๋ฐ, Capability๋ ๊ฐ ์ฃผ์ ์ ๊ด์ ์ผ๋ก ๋ณด๊ธฐ ๋๋ฌธ์ Effect๋ฅผ it happens๊ฐ ์๋๋ผ it requires๋ก ๋ณธ๋ค. ๊ทธ๋์ named handler ๊ฐ์ ์ฝ๋๋ฅผ ์ด๋ ๊ฒ ์ด๋ค. ๊ฑ computation์ ๋ฐ๋ ํจ์์ธ ๊ฒ.
fun swap[A]() {h1: State[A]} {h2: State[A]}: Unit = {
val a = h1.get();
val b = h2.get();
h1.set(a);
h2.set(b);
}
koka๋ happens์ง๋ง effekt๋ requires๋ค. ํ์ง๋ง named handler์์๋ ๋ ๋ค ๊ทธ๋ฅ computation์ ์ธ์๋ก ๋๊ธฐ๋ ๋ชจ์์์ ์๋ ดํ๋ค.


