我試圖在Haskell中實現類型爲Maybe [[Maybe a]] -> [[a]]
的函數。我已經嘗試了多種方法,但我得到的最接近的是:如何實現'ex :: Maybe [[也許a]] - > [[a]]'方法
ex :: Maybe [[Maybe a]] -> [[a]]
ex list = let l=list!!0
in []++(sequence l)
這給了我以下錯誤:
Couldn't match expected type `[a0]'
with actual type `Maybe [[Maybe a]]'
In the first argument of `(!!)', namely `list'
In the expression: list !! 0
In an equation for `l': l = list !! 0
我知道錯誤與第一個參數!!
問題爭論不是一個正常的名單,但不能讓我的頭靠近它。
輸入問題:「Maybe :: [[Maybe a]] - > [[a]]」應該是Maybe [[Maybe a]] - > [[a]]'。你也可以使用反引號(')作爲內聯代碼。 – jpath
你想如何使用'ex'函數?你聲明'list'是一個'Maybe [[也許是]]',但你試圖通過應用'(!!)'' – Lee
來嘗試把它當成一個列表。儘量不要使用像'(!!)',''頭「或」尾巴「。相反,模式匹配你的論點。它不僅是好的練習,它還將幫助你理解問題。你知道模式匹配嗎? – jpath