我是新來的哈斯克爾。 得到一個解析錯誤,不知道什麼是錯的。模式n解析錯誤
fromDecTo :: (Int -> Int) -> [Int]
fromDecTo (n x) | (n < x) = [n]
| otherwise = fromDecTo (n `div` x) ++ [n `mod` x]
這應該將十進制數轉換爲基數爲x(a.e.十六進制)的數字。
請幫幫我。
我是新來的哈斯克爾。 得到一個解析錯誤,不知道什麼是錯的。模式n解析錯誤
fromDecTo :: (Int -> Int) -> [Int]
fromDecTo (n x) | (n < x) = [n]
| otherwise = fromDecTo (n `div` x) ++ [n `mod` x]
這應該將十進制數轉換爲基數爲x(a.e.十六進制)的數字。
請幫幫我。
fromDecTo :: (Int -> Int) -> [Int]
這是具有一個的說法,從整數到整數功能的功能。這是不是你想要的:你想有兩個參數的函數,即
fromDecTo :: Int -> Int -> [Int]
同樣,圖案
fromDecTo (n x)
表示將函數n
到x
,然後應用fromDecTo
到的結果結果。這是不是你想要的,帶有兩個參數與
fromDecTo n x
做最後要注意,即使它不是習慣這樣做,就可以添加括號,但相反的關係。上面所示的相同類型的可寫入
fromDecTo :: Int -> (Int -> Int)
其中強調功能在Haskell咖喱的事實:一個二進制函數實際上是隻服用一個參數,第一,並返回一個函數採取一個的功能等論點,第二,最後返回結果。
類似的,而不是
fromDecTo n x
因爲n
是後應用於fromDecTo
,然後再x
我們可以寫
(fromDecTo n) x
。
在代碼中有幾個問題。這裏是你想要達到的目標:
fromDecTo :: Int -> Int -> [Int]
fromDecTo n x | (n < x) = [n]
| otherwise = fromDecTo (n `div` x) x ++ [n `mod` x]
謝謝!現在工作 – 04k