String { let x2 = number * 2 // ७ਮͳϩδοΫ let data = await apiClient.fact(x2) return data } ؔͰ෭࡞༻͕ൃੜ // ↓ // EffectͰͭͭ͠ɺ࣍ͷActionΛࢦఆ͢Δܗ @MainActor func x2NumberFact(_ number: Int, apiClient: APIClient) -> Effect { let x2 = number * 2 // ७ਮͳϩδοΫ return Effect.run { let data = await apiClient.fact(x2) return await send(.response(data)) } } & ff FDUSVOͷΫϩʔδϟͰ෭࡞༻ൃੜ͢Δ͕ɺ ͦΕY/VNCFS'BDUؔࣗମͰ෭࡞༻࣮ߦͰͳ͍Α͏ʹɺ & ff FDUSVOݺͼग़͠ݩ͕෭࡞༻Λ࣮ߦ͢ΔΑ͏ʹͳΔ w ෭࡞༻ͱͯ͠໌֬Խ͢ΔϝϦοτ w ७ਮͳϩδοΫʢ͜͜ͰYʣΛ෭࡞༻ͱͰ͖Δ w டং w ίʔυͷಡΈ͢͞ w ͞Βʹ5$"ͷ& ff FDU w 4XJGU$PODVSSFODZͰಈ࡞͢Δ w ༏ઌॱҐͷઃఆ w ฒྻ࣮ߦͷߏԽॲཧ w Ωϟϯηϧॲཧ͕༻ҙ w & ff FDUͷΈผεϨουʹݶఆ͠ςετ͕༻ҙ
݁Ռత w ςετ͕ॻ͖͘͢ͳΔʢؔ৺ࣄͰ͖Δʣ w 5$"ͩͱςετͷϑϨʔϜϫʔΫఏڙ͞Ε͍ͯΔͨΊಡΈ͍͢ w ϓϩμΫγϣϯίʔυ༧ଌՄೳੑ͕ߴ͍ͷͰίʔυ͕ԿΛ͍ͨ͠ͷ͔͕Θ͔Δ w ߟ͑Δ͖͜ͱ w ͜Ε͕ϕετͳํ๏͔Ͳ͏͔ίʔυΛॻ͍ͨΓΈͨΓ͢Δਓͨͪ࣍ୈ w 5$"ͷ੍ʹैΘͳ͍߹ʹϏϧυΤϥʔͱͳΒͳ͍ͷͰࣗ༝͋͞Γ༧ଌෆՄೳʹͰ͖Δ w ֶशίετϝϯόʔશһʹ͋ΔͨΊɺνʔϜʹͱͬͯϕετ͔Ͳ͏͔Θ͔Βͳ͍
FDU͕Ͳ͏ϑΟʔυόοΫ͢Δ͔ͷϨʔϧʹԊ͏Α͏ʹ͍ͨ͠ w ෭࡞༻ΛͰ͖͍ͯͳ͍3FEVDFSςετίʔυΛύεͤ͞Δͷ͍͠ w ʢࠓճઆ໌ͯ͠ͳ͍͚Ͳʣ w ඇಉظॲཧ࣌ؒΛ੍ޚͨ͠ςετΛ্खʹॻ͘͜ͱ҆ఆͨ͠ςετͷͨΊʹඞཁͰ5$"ͰͦΕ͕Մೳ w ੈͷதͷTQFDΛॻ͍͍ͯ͘ςετͷॻ͖ํशख़ʹΑͬͯϒϨΔͷͰʢࢲʹʣಡΈ͍͢ͱࢥ͑ͳ͍ w ίϯϙʔωϯτΛ࠶ར༻ͯ͠߹͠աʹϩδοΫΛநԽ͠ͳ͍ͰࡁΈΓํίϯηϯαε͕औΓ͍͢ w ίϯϙʔωϯτͷΈ߹ΘͤՄೳʹ͢ΔͨΊʹॻ͖ํடংΛ࣋ͨͤΒΕΔ w ྫ͑7JFX7JFX.PEFM6TF$BTF3FQPTJUPSZ%BUB4PVSDFͷΑ͏ʹڥքΛଟ͘࡞ΓQSPUPDPM·ΈΕʹͳΒͣʹࡁΉ
ݪཧओٛతʹͲΜͳػೳ3FEVDFSΛհͯ͠ॲཧΛ࣮ߦ͖͢ͱແཧͯ͠͠·͏ w 3FEVDFSΛհͯ͠ॲཧΛ࣮ߦ͢Δඞཁͳ͘ɺ4XJGU6*ͷΠϕϯτͰࡁΉγϯϓϧͳ͜ͱγϯϓϧʹΕ͍͍ w ঢ়ଶΛ࣋ͭͷ͔࣋ͨͳ͍ͷ͔ɺςετ͖͔ͦ͢͏Ͱͳ͍͔Έ͍ͨͳׂΓΓͷηϯε͕ඞཁ w 5$"ͷ߹͞Εͨ4UBUFͻͱͭͷͰ͔͍ͬ4UBUFͰ͋ΓͦΕ͕ΞϓϦͷঢ়ଶͰ͋Δ͜ͱΛҙࣝ͠ͳ͍ͱ͍͚ͳ͍ w ྫ͑ΞϓϦͰϨΨγʔϓϩδΣΫτͷҰ෦Λ5$"ʹ͢ΔͷΓͮΒ͍ʢؾ͕͢Δʣ w ΞϓϦͷ5$"ͷ3FEVDFS֎͔Β4UBUFΛ5$"ʹൖͤ͞ΔɺͱͳΔͱσʔλιʔεʢใݯʣ͕ෳͰ445͔Βԕ͔͟Δ w 4XJGUݴޠͷػೳΛ͍·ͬͯ͘͘ॻ͚ΔΑ͏ʹਐԽͯ͠ΔͷͰ4XJGUΛΒͳ͍ͱຐ๏ͷΑ͏ʹݟ͑ͯ͠·͏ w ୯ʹ͘ॻ͚ΔΑ͏ʹͳͬͯΔ͚ͩͰ͘ॻ͚Δ͚ͩͳͷʹɺͦͷҙຯΛΈऔΔͷ͕͘͠ࢥͬͯ͠·͏