【发布时间】:2015-03-10 14:55:24
【问题描述】:
我有以下函数,它用一个 Int 输入来划分一个 Maybes 列表。
divideList :: Int -> [Maybe Int] -> [Maybe Double]
即
divideList 100 [Just 5, Just 4, Nothing] == [Just 20, Just 25.0, Nothing]
提醒一下,Maybe 数据类型定义如下:
data Maybe a = Nothing | Just a
我的代码看起来(和工作)如下:
divideList m xs = [ div2 x | x <- xs]
where
div2 (Just n) | n > 0 = Just (fromIntegral m / fromIntegral n)
div2 _ = Nothing
现在我正在尝试再次编写相同的函数,但这次只是使用递归且没有列表推导。但是我似乎无法让它工作。
这是我的(错误的)猜测:
divideList m xs = div2 x
where
div2 (Just x) | x > 0 = Just (fromIntegral m / fromIntegral x)
div2 _ = Nothing
【问题讨论】:
标签: list haskell recursion list-comprehension