1
我知道有沒有「投」在Haskell,但我有這樣的表達:型投在Haskell
o = sum . takeWhile (< 10000) . filter odd . map (^2) $ [1..]
我想有結果作爲雙。 我想:
g :: (Integral c, Double b) => [c] -> b
g =sum . takeWhile (< 10000) . filter odd . map (^2)
和其他類似的東西。我總是得到一個錯誤。 我該怎麼辦?
「雙」是一種類型,而不是類型類。正確的類型簽名是'g :: Integral c => [c] - > Double'或更一般的'g ::(Num a,Integral c)=> [c] - > a'通常,您可以使用'fromIntegral'將任何整型轉換爲任何其他數字類型:'g = fromIntegral。總和。 takeWhile(<10000)。過濾奇數。地圖(^ 2)'。 – user2407038 2014-10-11 14:39:35
@ user2407038你應該把它變成一個答案! – Carsten 2014-10-11 14:54:33
@ user2407038非常感謝您的快速和有趣的答案。 – user3166747 2014-10-11 15:33:23