我想寫一個函數,將一個給定的值附加到嵌套列表結構的最內層列表,但我遇到了類型錯誤,當我甚至不知道什麼是這樣的函數的類型簽名是。Haskell嵌套列表追加
digpend a xs = case xs of [_:_] -> map (digpend a) xs
[[]] -> [[a]]
xs -> a:xs
例如,
digpend 555 [ [ [ 5,1,-12,33 ] , [ 6,22 ] ] , [ [ -9,0,9,12,83 ] ] ]
應該返回
[ [ [ 555,5,1,-12,33 ] , [ 555,6,22 ] ] , [ [ 555,-9,0,9,12,83 ] ] ]
理想情況下,它會通過遞歸嵌套的任何級別的工作。這是否允許?
@AndrewC:我不能完全看還有多少,但它可以使用多參數類型類來管理,不是嗎? '(digpend a)'想變成多態的事實不一定是個問題。 – PLL