fsum :: (Foldable f, Num a) ⇒ f a → a
它计算一个类似容器的数据结构中所有数字的总和。我的问题是我不能将f a定义为列表或Maybe或任何其他可折叠类型来访问。
f a
Maybe
fsum x = ....
但是我不知道如何折叠它,因为a不是幺半群。有什么意见吗?提前感谢
a
w1jd8yoj1#
这个问题已经在注解中得到了解答。下面是一些示例代码:
main = do putStrLn $ show $ fsum [0,1,2] putStrLn $ show $ fsum (Just 4) fsum :: (Foldable f, Num a) => f a -> a fsum = foldr (+) 0
1条答案
按热度按时间w1jd8yoj1#
这个问题已经在注解中得到了解答。下面是一些示例代码: