【发布时间】:2023-03-06 18:25:02
【问题描述】:
这是一个不适合我的功能,我想我需要摆脱 fst。
flagHolidays :: [(C.Day,Availability)] -> Handler [(C.Day,Availability)]
flagHolidays dayPairs = do
let days = map fst dayPairs
yepNope = Prelude.map isHoliday days
availability = Prelude.map flagAvailability yepNope
return $ Prelude.zip days availability
我能想到的唯一方法是一个非常丑陋的模式匹配,类似于(x,y):(xs,ys)。删除fst 有意义吗?如果是这样,模式匹配此对列表的最佳方法是什么?
【问题讨论】:
-
dayPars的类型为[(C.Day, Availability)]。你不能打电话给fst。您是否粘贴了正确的代码? -
无关:这是一个纯函数。没有必要将它放在
Handlermonad 中。正如您所看到的in your other question,在单子中不必要地运行这样的函数只会使它们难以测试。您应该将其定义为纯函数并在必要时将其提升。
标签: haskell