我有以下函數,它用一個Int輸入分割一個Maybes列表。遞歸列表理解[Haskell]
divideList :: Int -> [Maybe Int] -> [Maybe Double]
即
divideList 100 [Just 5, Just 4, Nothing] == [Just 20, Just 25.0, Nothing]
需要提醒的可能數據類型定義如下:
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
我想提一提,這基本上是專門用於'div3'的'map'功能。 – bheklilr
@bheklilr因爲他已經知道列表理解,我猜可以放心地假設他也知道'map'。 :) – thefourtheye
它的工作!榮譽! – user3086819