今日は、モナド アクションで不必要に実行されているいくつかの純粋な関数を修正する日だと決めました。これが私が持っているものです。
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