The*_*Cat 5 haskell minimum foldable
我想用foldr或foldMap实现最小值。根据练习,它应具有以下定义:
mini :: (Foldable t, Ord a) => t a -> Maybe a -- named "mini" to avoid name clash
Run Code Online (Sandbox Code Playgroud)
听起来很简单,但是我不知道可以在下面的X中添加什么才能使其起作用。请帮忙?
mini xs = Just (foldr min X xs)
Run Code Online (Sandbox Code Playgroud)
而且,您也可以通过foldMap向我展示如何获得奖励积分,但这似乎更加困难。
您可以这样做:
mini :: (Foldable f, Ord a) => f a -> Maybe a
mini = foldr maybeMin Nothing
where
maybeMin x Nothing = Just x
maybeMin x (Just y) = Just (min x y)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
390 次 |
| 最近记录: |