今日は、モナド アクションで不必要に実行されているいくつかの純粋な関数を修正する日だと決めました。これが私が持っているものです。
flagWorkDays :: [C.Day] -> Handler [WorkDay]
flagWorkDays dayList =
flagWeekEnds dayList >>=
flagHolidays >>=
flagScheduled >>=
flagASAP >>=
toWorkDays
これが現在の flagWeekEnds です。
flagWeekEnds :: [C.Day] -> Handler [(C.Day,Availability)]
flagWeekEnds dayList = do
let yepNope = Prelude.map isWorkDay dayList
availability = Prelude.map flagAvailability yepNope
return $ Prelude.zip dayList availability
flagHolidays
同様のパターンに従います。toWorkDays
あるタイプを別のタイプに変更するだけで、純粋な関数です。
flagScheduled
、およびflagASAP
はモナド アクションです。単項アクションと純粋な関数を慣用的に組み合わせる方法がわかりませんflagWorkDays
。純粋にされたとflagWorkDays
仮定して、flagWeekEnds
誰かが私を修正するのを手伝ってくれますか?flagHolidays