我正在尝试使用List折叠实现catMaybes但不知道我应该如何开始。
我的一般想法是使用foldl并使用案例来过滤Nothing和Just。之后,相同的功能必须将找到的部分连接起来,我的代码到目前为止看起来像这样:
this is third line __label__no
this is fourth line __label__a __label__no
编译时我遇到很多错误... 我想我需要朝着正确的方向努力解决这个问题。谢谢你的帮助!
答案 0 :(得分:1)
Just y -> y
如果需要与[]
统一,那么您应该在函数类型签名中说[Maybe [a]]
。那或许你的意思是Just y -> [y]
。
(++) \case Nothing -> []; Just y -> y
这只是语法上的废话。我想你想要1.函数组合2.第一个参数的部分应用:
\b -> (b ++) . \case Nothing -> []; Just y -> y